Administración de sistemas Red Hat II Libro de trabajo del estudiante Red Hat Enterprise Linux 6 Versión es-2-20110131
ADMINISTRACIÓN DE SISTEMAS RED HAT II
RH135
Red Hat Enterprise Linux 6 RH135 Administración de sistemas Red Hat II Edición 2 Autor Autor Autor Autor Autor Editor Editor
Joshua Hoffman Bowe Strickland Brad Smith Robert Locke George Hacker Steven Bonneville Mark Howson
Copyright © 2010 Red Hat, Inc. The contents of this course and all its modules and related materials, including handouts to audience members, are Copyright © 2010 Red Hat, Inc. No part of this publication may be stored in a retrieval system, transmitted or reproduced in any way, including, but not limited to, photocopy, photograph, magnetic, electronic or other record, without the prior written permission of Red Hat, Inc. This instructional program, including all material provided herein, is supplied without any guarantees from Red Hat, Inc. Red Hat, Inc. assumes no liability for damages or legal action arising from the use or misuse of contents or details contained herein. If you believe Red Hat training materials are being used, copied, or otherwise improperly distributed please e-mail
[email protected] or phone toll-free (USA) +1 (866) 626-2994 or +1 (919) 754-3700. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, Hibernate, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a registered trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. All other trademarks are the property of their respective owners.
Colaboradores: Brian Butler, Victor Costea y Andrew Dingman
Convenciones del documento vii Notas y advertencias ............................................................................................. vii Introducción ix Bienvenido a clase. ................................................................................................. ix Acerca de Red Hat Enterprise Linux ......................................................................... ix Software adicional de Red Hat Enterprise Linux .......................................................... x Contacto con la Asistencia técnica de Red Hat .......................................................... xii Acerca de este curso xv Administración de sistemas Red Hat II ..................................................................... xv Estructura del curso ............................................................................................... xv Orientación sobre la red del salón de clases ............................................................. xvi Internacionalización Soporte de idioma ................................................................................................. Idioma predeterminado de todo el sistema ............................................................... Selección de idioma por usuario ............................................................................. Métodos de entrada ............................................................................................... Referencia de códigos de idioma .............................................................................
xix xix xix xix xx xx
1. Instalación automatizada de Red Hat Enterprise Linux 1 Generalidades de introducción .................................................................................. 2 Crear un archivo kickstart con system-config-kickstart ................................................ 3 Poner el archivo kickstart a disposición de los instaladores .......................................... 5 Crear medios de arranque ....................................................................................... 8 Apuntar el instalador al archivo kickstart ................................................................... 9 Modificar un archivo kickstart .................................................................................. 12 Prueba de criterios ................................................................................................. 15 2. Acceso a la línea de comando Acceso a la línea de comando a nivel local ............................................................... Acceso a la línea de comando mediante ssh ............................................................. Prueba de criterios ................................................................................................
19 20 24 28
3. Herramientas intermedias de la línea de comando Uso de enlaces físicos ............................................................................................ Archivadores y compresión ..................................................................................... Introducción a VIM ................................................................................................ Flujo de trabajo básico de VIM ................................................................................ Prueba de criterios ...............................................................................................
31 32 37 40 42 44
4. Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O) Expresiones regulares básicas ................................................................................ Uso de grep .......................................................................................................... Canalizaciones y redirección ................................................................................... Prueba de criterios ...............................................................................................
47 48 54 56 60
5. Configuración de red y solución de problemas 63 Comprensión de los archivos de configuración de red ............................................... 64 Proceso de solución de problemas básico ................................................................ 70 Kit de herramientas para la solución de problemas de red .......................................... 72 Prueba de criterios ................................................................................................ 75 6. Administración de particiones simples y sistemas de archivos 79
RH135-6-es-2-20110131
iii
RH135
Particiones simples y sistemas de archivos ............................................................ 80 Habilitación de la privacidad de datos con encriptación de particiones ......................... 85 Administración de espacio de intercambio ............................................................... 89 Prueba de criterios ................................................................................................ 92 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos 95 Reconocer los componentes del LVM ....................................................................... 96 Implementar el almacenamiento de LVM con herramientas de la línea de comando ....... 100 Extender un volumen lógico y su sistema de archivos Ext4 ....................................... 103 Extensión y reducción de un grupo de volúmenes .................................................... 107 Crear una instantánea para facilitar la copia de seguridad de datos ............................. 110 Prueba de criterios ................................................................................................ 113 8. Acceso a los servicios para intercambio de archivos de red 117 Montar sistemas de archivos de red ....................................................................... 118 Montar automáticamente un almacenamiento de red ................................................ 123 Prueba de criterios ............................................................................................... 127 9. Administración de las cuentas de usuario 131 ¿Qué es un usuario? ............................................................................................ 132 Administración de usuarios locales ......................................................................... 134 Administración de contraseñas ............................................................................ 138 Prueba de criterios ............................................................................................... 141 10. Cuentas de usuarios de red con LDAP Autenticación de red mediante el uso de un servidor LDAP ....................................... Montaje en red de directorios hogar ...................................................................... Prueba de criterios ...............................................................................................
145 146 150 153
11. Control de acceso a los archivos 157 Administración de grupos ................................................................................... 158 Administración de las listas de control de acceso al sistema de archivos ..................... 161 Prueba de criterios ............................................................................................... 166 12. Administración de SELinux 169 Conceptos básicos de seguridad de SELinux ............................................................ 170 Modos de SELinux ................................................................................................ 172 Mostrar y modificar modos de SELinux ................................................................... 174 Mostrar y modificar contextos de archivo de SELinux ............................................. 176 Administración de booleanos de SELinux .............................................................. 179 Control de las violaciones de SELinux .................................................................... 180 Prueba de criterios ............................................................................................... 183 13. Instalación y administración de software 187 Uso de yum ......................................................................................................... 188 Administración de grupos de componentes YUM .................................................... 191 Manipulación de software de terceros ................................................................... 193 Uso de repositorios YUM de terceros .................................................................... 197 Prueba de criterios ............................................................................................... 201 14. Administración de servicios instalados 205 Administrar servicios ........................................................................................... 206 Confirmar disponibilidad del servicio ..................................................................... 208
iv
RH135-6-es-2-20110131
Prueba de criterios ............................................................................................... 210 15. Análisis y almacenamiento de registros 213 Determinar destinos de registros ......................................................................... 214 Buscar y analizar un informe de resumen de registro ............................................... 218 Cambiar la dirección de correo electrónico de resumen de registro ........................... 220 Prueba de criterios .............................................................................................. 223 16. Administración de procesos 227 Control de procesos ............................................................................................. 228 Finalización y control de procesos ......................................................................... 229 Administración de tareas periódicas ...................................................................... 233 Programación de tareas aplazadas ........................................................................ 236 Prueba de criterios ............................................................................................ 239 17. Ajuste y mantenimiento del kernel 243 Arquitecturas compatibles e identificación del kernel .............................................. 244 Administración de los módulos del kernel ............................................................... 247 Especificación de parámetros de arranque del kernel .............................................. 250 Actualización del kernel ....................................................................................... 252 18. Técnicas de recuperación del sistema 257 El proceso de arranque ...................................................................................... 258 Reparación de problemas de arranque ................................................................. 266 Prueba de criterios ............................................................................................... 271 A. Soluciones 275 Instalación automática de Red Hat Enterprise Linux ................................................ 275 Acceso a la línea de comando ............................................................................... 282 Herramientas intermedias de la línea de comando .................................................. 286 Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O) ................. 291 Configuración de red y solución de problemas ...................................................... 296 Administración de particiones simples y sistemas de archivos ................................. 300 Administración de almacenamiento flexible con el administrador de volúmenes lógicos .............................................................................................................. 309 Acceso a los servicios para intercambio de archivos de red ..................................... 318 Administración de las cuentas de usuario ................................................................ 321 Cuentas de usuario de red con LDAP ..................................................................... 324 Control de acceso a los archivos ......................................................................... 328 Administración de SELinux ................................................................................... 333 Instalación y administración de software .............................................................. 338 Administración de servicios instalados ................................................................... 343 Análisis y almacenamiento de registros .................................................................. 347 Administración de procesos .................................................................................. 350 Ajuste y mantenimiento del kernel ........................................................................ 356 Técnicas de recuperación del sistema .................................................................. 358
RH135-6-es-2-20110131
v
vi
Convenciones del documento Notas y advertencias Nota Las "notas" son consejos, atajos o enfoques alternativos para una tarea determinada. Ignorar una nota no debería tener consecuencias negativas, pero podría pasarse por alto algún truco que puede simplificar una tarea.
Comparación Las "comparaciones" buscan similitudes y diferencias entre la tecnología o el tema que se está tratado y tecnologías o temas similares de otros sistemas operativos o entornos.
Referencias En las "referencias", se describe el lugar donde se puede encontrar documentación externa relevante para un tema.
Importante En los cuadros "importantes", se detallan cosas que se olvidan con facilidad: cambios de configuración que sólo se aplican a la sesión actual o servicios que se deben reiniciar para poder aplicar una actualización. Ignorar un cuadro con la etiqueta "Importante" no provocará pérdida de datos, pero puede causar irritación y frustración.
Advertencia No se deben ignorar las "advertencias". Es muy probable que ignorar las advertencias provoque pérdida de datos.
RH135-6-es-2-20110131
vii
viii
Introducción Bienvenido a clase. Muchas gracias por asistir a esta clase de capacitación de Red Hat. Infórmenos si tiene alguna necesidad especial mientras se encuentra en nuestro centro de capacitación. Pregúntele al instructor si tiene alguna duda sobre el centro, como los horarios de atención del centro y cuándo tendrá acceso al salón de clases, las ubicaciones de los baños y las salas de descanso, la disponibilidad de teléfonos y conectividad de red, e información sobre el área local. Como cortesía a los otros estudiantes, coloque su buscapersonas o teléfono celular en vibración o silencio, o bien apague sus dispositivos durante la clase. Le solicitamos que realice llamadas sólo durante los períodos de descanso. Si tiene una emergencia personal y no puede asistir o completar la clase, infórmenos al respecto. Muchas gracias.
Acerca de Red Hat Enterprise Linux Este curso se dicta con Red Hat Enterprise Linux, una distribución de Linux para empresas que se centra en software de código abierto desarrollado, diseñada específicamente para organizaciones que usan Linux en la configuración de producción. Red Hat Enterprise Linux se vende mediante una suscripción, donde la suscripción le otorga acceso continuo a todas las versiones compatibles del sistema operativo en forma de fuente y binario, no sólo la última, lo cual incluye todas las actualizaciones y correcciones. Se incluyen servicios de asistencia extendida: se incluyen un contrato de asistencia y derecho al Módulo de actualización de Red Hat Network durante el período de suscripción. Se encuentran disponibles diversos contratos de nivel de servicios (SLA) que pueden proporcionar una cobertura máxima durante las 24 horas, todos los días de la semana, con un tiempo de respuesta garantizado de una hora para problemas de gravedad 1. La asistencia estará disponible por hasta siete años después de una versión principal en particular (diez años con el complemento opcional "Asistencia de actualización extendida"). Red Hat Enterprise Linux se lanza en un ciclo de varios años entre versiones principales. Las actualizaciones secundarias de versiones principales se lanzan aproximadamente cada seis meses durante el ciclo de vida del producto. Los sistemas certificados en una actualización secundaria de una versión principal seguirán siendo certificados para actualizaciones secundarias futuras de la versión principal. Un conjunto principal de bibliotecas compartidas tienen API y ABI, lo cual se preservará entre las versiones principales. Se proporcionan muchas otras bibliotecas compartidas, que tienen API y ABI, y que se garantizan dentro de una versión principal (para todas las actualizaciones secundarias), pero que no se garantizan que serán compatibles entre las versiones mayores. Red Hat Enterprise Linux se basa en un código desarrollado por la comunidad de código abierto, que se presenta generalmente primero a través de la distribución de Fedora disponible de
RH135-6-es-2-20110131
ix
Introducción
forma gratuita y con el patrocinio de Red Hat (http://fedoraproject.org/). Red Hat después agrega mejoras de rendimiento, pruebas intensivas y certificaciones de productos producidos por los principales proveedores de hardware y software independientes. Red Hat Enterprise Linux proporciona un alto nivel de estandarización mediante su soporte para cuatro arquitecturas de procesador (Intel de 32 bits compatible con x86, AMD64/Intel 64 (x86-64), IBM POWER y mainframe IBM en System z). Además, admitimos más de 4000 certificaciones ISV de Red Hat Enterprise Linux, independientemente si el sistema operativo RHEL que estén usando esas aplicaciones se esté ejecutando en “un sistema vacío”, en una máquina virtual, como aparato de software, o en la nube con tecnologías como Amazon EC2. Actualmente, la familia de productos Red Hat Enterprise Linux incluye: • Red Hat Enterprise Linux para Servidores: la plataforma de centro de datos para servidores críticos que ejecutan Red Hat Enterprise Linux. Este producto incluye soporte para los servidores compatibles con x86 y x86-64 más grandes y los niveles más altos de asistencia técnica, que se puede implementar en un sistema vacío, como guest en los hipervisores principales, o en la nube. Las suscripciones están disponibles con derechos a guests flexibles de uno, cuatro o un número ilimitado de guests por host físico. Los precios se basan en la cantidad de pares de sockets usados en la placa madre del sistema, la cantidad de guests admitidos, el nivel de asistencia deseado y la duración de la suscripción que se desee. Red Hat Enterprise Linux para IBM POWER y Red Hat Enterprise Linux para IBM en System z son variantes similares diseñadas para esas arquitecturas de sistema. • Red Hat Enterprise Linux Desktop: creado para el administrador y el usuario final, el producto Red Hat Enterprise Linux Desktop proporciona un entorno atractivo y muy productivo para trabajadores especializados que se desempeñan en escritorios y equipos portátiles. Las instalaciones de cliente se pueden personalizar especialmente y se las puede bloquear para lograr simplicidad y seguridad en cualquiera tarea de estación de trabajo. La variante básica Desktop (Escritorio) se diseñó para trabajadores operativos que tienen un control administrativo limitado del sistema, que usan principalmente aplicaciones de productividad como Firefox, Evolution/Thunderbird, OpenOffice.org y Planner/TaskJuggler. La variante más sofisticada Workstation (Estación de trabajo) se diseñó para usuarios de Linux avanzados que necesitan un entorno de desarrollo independiente y que esperan tener privilegios de superusuario local o privilegios de superusuario selecto. Además, hay otras variantes como Red Hat Enterprise Linux para HPC Head Node y Red Hat Enterprise Linux para HPC Compute Node (dirigidas a clústeres informáticos de alto rendimiento), y Red Hat Enterprise Linux para SAP Business Applications. Si desea obtener más información, visite http://www.redhat.com/.
Software adicional de Red Hat Enterprise Linux Se proporcionan dos canales de actualización de software adicionales con Red Hat Enterprise Linux, además de los paquetes de software principales que se envían: • Complementario: el canal "Complementario" proporciona paquetes de código cerrado selectos, creados para Red Hat Enterprise Linux para la conveniencia del cliente. Esto incluye aplicaciones como Adobe Flash o Java JVM de marca registrada.
x
RH135-6-es-2-20110131
Software adicional de Red Hat Enterprise Linux
• Opcional: el canal "Opcional" proporciona paquetes de código abierto selectos para la conveniencia del usuario únicamente. Generalmente, se incluyen en otra variante de Red Hat Enterprise Linux como un paquete totalmente compatible o son un requisito de creación para la distribución. Estos paquetes están disponibles sólo a través de un canal secundario de Red Hat Network.
Importante Los paquetes Complementarios y Opcionales se proporcionan con asistencia limitada para la conveniencia del cliente únicamente.
Red Hat también ofrece una cartera de Complementos para Red Hat Enterprise Linux totalmente compatibles que extienden las características de su suscripción de Red Hat Enterprise Linux. Estos complementos le permiten agregar capacidades y personalizar su entorno informático según sus necesidades particulares. Estos complementos incluyen compatibilidad con clústeres de aplicaciones de alta disponibilidad, sistemas de archivos de clústeres y sistemas de archivos muy grandes, administración de sistemas mejorada con Red Hat Network, asistencia de actualización extendida y mucho más.
Nota Visite http://www.redhat.com/rhel/add-ons/ para obtener más información sobre los Complementos para Red Hat Enterprise Linux disponibles. Si desea información sobre otros productos que ofrece Red Hat, como Red Hat Enterprise Virtualization, JBoss Enterprise Middleware, Red Hat Enterprise MRG y varios servicios de consultoría e ingeniería personalizados, http://www.redhat.com/products/ también tiene datos útiles.
El Proyecto Fedora también suministra paquetes adicionales para Red Hat Enterprise Linux a través de EPEL (Paquetes extras para Enterprise Linux). EPEL surge de un esfuerzo comunitario y voluntario para crear un repositorio de paquetes complementarios de alta calidad que puedan utilizarse con Red Hat Enterprise Linux y derivados compatibles. Acepta software de código abierto y gratuito no gravado legalmente, que no crea conflicto con los paquetes en Red Hat Enterprise Linux o los productos complementarios de Red Hat. Los paquetes EPEL se crean para una versión principal en particular de Red Hat Enterprise Linux y EPEL los actualizará durante el período de asistencia estándar de esa versión principal. Red Hat no proporciona contratos de nivel de servicios ni asistencia comercial para los paquetes EPEL. Dado que Red Hat no ofrece asistencia oficial para estos paquetes, EPEL proporciona una forma útil de reducir los costos de asistencia para los paquetes sin asistencia que su empresa desee usar con Red Hat Enterprise Linux. EPEL le permite distribuir el trabajo de asistencia que usted debería hacer por sí solo a través de otras organizaciones que comparten su deseo de usar este software de código abierto en RHEL. Los paquetes de software en sí atraviesan el mismo proceso de revisión que los paquetes de Fedora, lo que significa que los desarrolladores de Linux experimentados han examinado los paquetes en busca de problemas. Como EPEL no sustituye
RH135-6-es-2-20110131
xi
Introducción
ni crea conflicto con los paquetes de software enviados en RHEL, usted puede usar EPEL con confianza de que no causará problemas con sus paquetes de software normales. Para los desarrolladores que desean que su software de código abierto se convierta en parte de Red Hat Enterprise Linux, usualmente la primera etapa es patrocinarlo en EPEL para que los usuarios de RHEL tengan la oportunidad de usarlo; así, se obtiene experiencia en la administración del paquete para una distribución de Red Hat. Visite http://fedoraproject.org/wiki/EPEL/ para obtener más información sobre EPEL.
Importante EPEL es respaldado por el Proyecto Fedora administrado por la comunidad y no por la Asistencia de Red Hat.
Contacto con la Asistencia técnica de Red Hat Uno de los beneficios de su suscripción de Red Hat Enterprise Linux es el acceso a la asistencia técnica a través del portal de clientes de Red Hat en http://access.redhat.com/. Si no tiene una cuenta de Red Hat en el portal de clientes o no puede iniciar sesión, puede visitar https://access.redhat.com/support/faq/LoginAssistance.html o comunicarse con Atención al cliente para obtener asistencia. Es posible que pueda solucionar un problema sin asistencia técnica formal al buscar en la Base de conocimiento (https://access.redhat.com/kb/knowledgebase/). O bien, puede comunicarse con la Asistencia de Red Hat a través de un formulario web o telefónicamente, según el nivel de asistencia. Los números de teléfono y los horarios de atención para diferentes regiones varían; consulte https://access.redhat.com/support/contact/ technicalSupport.html para obtener la información actual. La información sobre el proceso de asistencia está disponible en https://access.redhat.com/support/policy/ support_process.html. Algunos consejos sobre la preparación de su informe de errores para una participación más eficaz de la Asistencia de Red Hat: • Defina el problema. Asegúrese de que pueda expresar el problema y sus síntomas antes de comunicarse con Red Hat. Sea tan específico como pueda y describa con detalles los pasos que puede usar (si corresponde) para reproducir el problema. • Reúna información básica. ¿Qué versión de nuestro software está ejecutando? ¿Está usando la última actualización? ¿Qué pasos lo llevaron al error? ¿Se puede recrear el problema y qué pasos son necesarios? ¿Se ha realizado algún cambio reciente que podría haber disparado el problema? ¿Se emitieron mensajes u otras notas de diagnóstico? ¿Qué decían exactamente (la redacción exacta puede ser fundamental)? • Reúna información de diagnóstico relevante. Esté preparado para suministrar toda la información relevante que sea posible; registros, volcados principales, seguimientos, resultados
xii
RH135-6-es-2-20110131
Contacto con la Asistencia técnica de Red Hat
de sosreport, etc. La Asistencia técnica podrá ayudarlo a determinar qué datos son relevantes. • Determine el nivel de gravedad de su problema. Red Hat usa una escala de cuatro niveles para indicar la gravedad de los problemas; los criterios se pueden encontrar en https:// access.redhat.com/support/policy/GSS_severity.html.
Advertencia Bugzilla no es una herramienta de asistencia. Para los problemas de asistencia que afectan Red Hat Enterprise Linux, los clientes deben registrar sus errores a través de los canales de asistencia analizados anteriormente para poder asegurarse de que Red Hat comprenda por completo su problema y pueda responder según los términos de su contrato de nivel de servicios. Los clientes no deben registrar errores directamente en la interfaz web http:// bugzilla.redhat.com/.
Para Red Hat Enterprise Linux, el Departamento de ingeniería usa Bugzilla para hacer un seguimiento de errores y cambios, y para comunicarse en un nivel técnico con los socios del Departamento de ingeniería y otras partes externas. Todos, incluso personas que no sean clientes, pueden registrar problemas en Bugzilla, y Red Hat los controla y revisa para la inclusión en la fe de erratas. Sin embargo, Red Hat no garantiza ningún SLA por errores registrados directamente en Bugzilla (omitiendo los canales de asistencia normales). Puede ocurrir una revisión inmediatamente o después de un período de tiempo de cualquier duración. Los problemas que llegan a Red Hat a través de la Asistencia siempre tienen prioridad sobre los problemas de impacto y gravedad similares que se registran directamente en Bugzilla. Además, se les pueden proporcionar a los clientes soluciones alternativas y revisiones (si son posibles y adecuadas) a través de la Asistencia, incluso antes de que se emita una solución permanente a través de Red Hat Network. Red Hat considera los problemas que se ingresan directamente en Bugzilla comentarios importantes y esto nos permite ofrecer una interacción eficaz con la comunidad de desarrollo de código abierto y ser tan transparentes como sea posible con los clientes mientras se procesan los problemas. No obstante, para los clientes que encuentren problemas de producción en Red Hat Enterprise Linux, Bugzilla no es el canal correcto.
RH135-6-es-2-20110131
xiii
xiv
Acerca de este curso Administración de sistemas Red Hat II El curso Administración de sistemas Red Hat II (RH135) está específicamente diseñado para estudiantes que hayan finalizado el curso Administración de sistemas Red Hat I (RH124). Administración de sistemas Red Hat II se centra en las tareas principales necesarias para convertirse en un administrador de Linux de tiempo completo y validar esas habilidades mediante el examen de Administrador de sistemas certificado de Red Hat (RHCSA). Este curso aborda en detalle la administración de Linux empresarial, que incluye una cobertura más profunda de sistemas de archivos y partición, volúmenes lógicos, administración de paquetes y solución de problemas. El curso Administración de sistemas Red Hat II también se centra en ampliar la base de habilidades relacionadas con la línea de comando, que son invaluables para la administración de sistemas de nivel empresarial. A los estudiantes que no realizaron el curso Administración de sistemas Red Hat I, pero están preparados para estudiar el contenido de este nivel, se les recomienda realizar el Curso acelerado de RHCSA (RH200) en su lugar.
Objetivos • Completar la capacitación sobre las habilidades necesarias para convertirse en un administrador de sistemas Linux de tiempo completo, que comenzó en el curso Administración de sistemas Red Hat I. • Preparar a los estudiantes para que validen esas habilidades en el examen de RHCSA.
Audiencia y requisitos previos • Estudiantes que hayan realizado el curso Administración de sistemas Red Hat I.
Estructura del curso Los cursos de capacitación de Red Hat son clases del mundo real, basadas en el rendimiento, prácticas e interactivas que tienen como propósito fomentar la participación activa y proporcionar la oportunidad de usar sistemas reales para desarrollar habilidades reales. Alentamos a los estudiantes a participar en clase y a hacer preguntas para obtener el máximo provecho de sus sesiones de capacitación. Este curso se divide en varias unidades, que están organizadas por tema. Cada unidad se divide en varias secciones, que se centran en una tarea o habilidad específica. La unidad comenzará con una introducción al material y después se pasará a la primera sección. En cada sección, habrá una presentación guiada por el instructor. Durante la presentación, se recomienda que tome nota en su libro de trabajo del estudiante (este libro); es posible que el instructor le recuerde hacerlo. Después de la presentación, habrá una actividad breve o una evaluación para ofrecerle la oportunidad de practicar con el material o de revisar los procedimientos. Después de la revisión de la evaluación, el instructor pasará a la siguiente sección. Al final de la unidad, normalmente habrá un tipo de ejercicio de laboratorio práctico (una "prueba de criterios") que le dará la oportunidad de aprender mientras ejercita y de revisar
RH135-6-es-2-20110131
xv
Acerca de este curso
su comprensión del contenido de la unidad. No dude en hacer preguntas en clase o en solicitar el asesoramiento o la ayuda del instructor durante el ejercicio de final de la unidad. Deseamos que el entorno del salón de clases sea un lugar de "bajo riesgo", donde usted se sienta cómodo para hacer preguntas y aprender de las cosas que funcionen y de las que no funcionen inicialmente.
Orientación sobre la red del salón de clases Es posible que se usen dos subredes en este curso. La red principal del salón de clases es 192.168.0.0/24 y pertenece a los hosts del dominio DNS "example.com". Esta red se usará para la mayoría de las actividades del salón de clases. Algunos cursos usan una segunda subred, 192.168.1.0/24, que pertenece a los hosts del dominio DNS "remote.test". Se puede acceder a esta red de los hosts de example.com y se usa en los ejercicios de laboratorio que requieren servicios de pruebas o configuración de seguridad de máquinas (teóricamente) fuera de su control administrativo. A cada estudiante se le asigna una máquina física (desktopX.example.com en 192.168.0.X) que puede alojar dos o más máquinas virtuales para los actividades de laboratorio, serverX.example.com y hostX.example.com. En algunos cursos, es posible que los estudiantes también usen una cuenta que no sea de usuario root en una máquina de prueba en el dominio remote.test, remoteX.example.com (192.168.1.X), para probar el acceso a servicios de red en sus máquinas example.com durante las actividades de laboratorio. El instructor controla varias máquinas que los estudiantes también pueden ver. La máquina instructor.example.com (también conocida como instructor.remote.test) es el servidor de utilidades del salón de clases, que proporciona los servicios de enrutamiento predeterminados, DHCP, servicio de nombre DNS, uno o más repositorios de software YUM que usa la clase y otros servicios de red. También se conecta al proyector de video para permitir que el instructor muestre diapositivas y demostraciones. Proporciona una máquina virtual para el instructor, demo.example.com, que este usará para las demostraciones en clase. Nombre de la máquina
Dirección IP
Función
desktopX.example.com
192.168.0.X
Estación de trabajo física del estudiante
serverX.example.com
192.168.0.(X+100)
Máquina virtual principal del estudiante
hostX.example.com
192.168.0.(X+200)
Máquina virtual secundaria del estudiante
remoteX.remote.test
192.168.1.X
Máquina de prueba del estudiante en el dominio remote.test (uso compartido)
instructor.example.com
192.168.0.254
Máquina física del instructor y servidor de utilidades
instructor.remote.test
192.168.1.254
Identidad de instructor.example.com en la red remote.test
xvi
RH135-6-es-2-20110131
Orientación sobre la red del salón de clases
Nombre de la máquina
Dirección IP
Función
demo.example.com
192.168.0.250
Máquina virtual para demostraciones del instructor
Tabla 1. Máquinas del salón de clases
RH135-6-es-2-20110131
xvii
xviii
Internacionalización Soporte de idioma Red Hat Enterprise Linux 6 admite oficialmente veintidós idiomas: inglés, asamés, bengalí, chino (simplificado), chino (tradicional), francés, alemán, guyaratí, hindi, italiano, japonés, canarés, coreano, malayalam, maratí, oriya, portugués (brasileño), panyabí, ruso, español, tamil y telugú. Los soportes para maithili, nepalés y cingalés se proporcionan como vistas previas de tecnología.
Idioma predeterminado de todo el sistema El idioma predeterminado del sistema operativo se configura normalmente en inglés de EE. UU. (en_US.UTF-8), pero esto se puede modificar durante o después de la instalación. Para utilizar otros idiomas, es posible que deba instalar grupos de paquetes adicionales para proporcionar las fuentes, las traducciones, los diccionarios y otras aplicaciones correspondientes. Por convención, estos grupos de paquetes siempre tienen el nombre language-support. Estos grupos de paquetes se pueden seleccionar durante la instalación, o bien después de la instalación con PackageKit (System → Administration → Add/Remove Software) o yum. El idioma predeterminado de un sistema se puede cambiar con system-config-language (System → Administration → Language), que afecta el archivo /etc/sysconfig/i18n.
Selección de idioma por usuario Los usuarios pueden preferir usar un idioma diferente para su propio entorno de escritorio o intérpretes de comandos interactivos a utilizar el idioma configurado como predeterminado del sistema. Esto se le indica al sistema a través de la variable de entorno LANG. Esto se puede configurar de forma automática para el entorno de escritorio GNOME al seleccionar un idioma en la pantalla de inicio de sesión gráfica al hacer clic en el elemento Language, ubicado en la esquina inferior izquierda de la pantalla de inicio de sesión gráfica, inmediatamente antes de iniciar sesión. Se le preguntará al usuario si el idioma seleccionado se debe usar sólo para el inicio de sesión en cuestión o como valor predeterminado para el usuario de aquí en adelante. GDM guarda la configuración en el archivo ~/.dmrc del usuario. Si un usuario desea que su entorno de intérprete de comandos use la misma configuración LANG que su entorno gráfico incluso cuando inicie sesión a través de una consola de texto o ssh, puede configurar un código similar al siguiente en su archivo ~/.bashrc. Este código configurará su idioma preferido si se guarda uno en ~/.dmrc o usará el predeterminado del sistema si no se guarda ninguno: i=$(grep 'Language=' ${HOME}/.dmrc | sed 's/Language=//') if [ "$i" != "" ]; then export LANG=$i
RH135-6-es-2-20110131
xix
Internacionalización
fi
Los idiomas con caracteres no ASCII pueden tener problemas para visualizarse en algunos entornos. Es posible que los caracteres kanji, por ejemplo, no se visualicen como deberían en una consola virtual. Se pueden crear comandos individuales para utilizar otro idioma mediante la configuración de LANG en la línea de comando: [user@host ~]$ LANG=fr_FR.UTF-8 date lun. oct. 24 10:37:53 CDT 2011
Los comandos subsiguientes se revertirán y utilizarán el idioma de salida predeterminado del sistema. El comando locale se puede usar para comprobar el valor actual de LANG y otras variables de entorno relacionadas.
Métodos de entrada Si los paquetes de soporte de idioma adecuados están instalados, se puede utilizar IBus (un bus de entrada inteligente) para ingresar texto en diferentes idiomas en X. Puede habilitar IBus con el comando im-chooser (System → Preferences → Input Method).
Referencia de códigos de idioma Idioma
Valor $LANG
Grupo de paquetes de idioma
Inglés (EE. UU.)
en_US.UTF-8
(predeterminado)
Asamés
as_IN.UTF-8
assamese-support
Bengalí
bn_IN.UTF-8
bengali-support
Chino (simplificado)
zh_CN.UTF-8
chinese-support
Chino (tradicional)
zh_TW.UTF-8
chinese-support
Francés
fr_FR.UTF-8
french-support
Alemán
de_DE.UTF-8
german-support
Guyaratí
gu_IN.UTF-8
gujarati-support
Hindi
hi_IN.UTF-8
hindi-support
Italiano
it_IT.UTF-8
italian-support
Japonés
ja_JP.UTF-8
japanese-support
Canarés
kn_IN.UTF-8
kannada-support
Coreano
ko_KR.UTF-8
korean-support
Malayalam
ml_IN.UTF-8
malayalam-support
Maratí
mr_IN.UTF-8
marathi-support
Oriya
or_IN.UTF-8
oriya-support
Portugués (brasileño)
pt_BR.UTF-8
brazilian-support
xx
RH135-6-es-2-20110131
Referencia de códigos de idioma
Idioma
Valor $LANG
Grupo de paquetes de idioma
Panyabí
pa_IN.UTF-8
punjabi-support
Ruso
ru_RU.UTF-8
russian-support
Español
es_ES.UTF-8
spanish-support
Tamil
ta_IN.UTF-8
tamil-support
Telugú
te_IN.UTF-8
telugu-support
Maithili
mai_IN.UTF-8
maithili-support
Nepalés
ne_NP.UTF-8
nepali-support
Cingalés
si_LK.UTF-8
sinhala-support
Vistas previas de tecnología
Tabla 2. Códigos de idioma
RH135-6-es-2-20110131
xxi
xxii
UNIDAD UNO
INSTALACIÓN AUTOMATIZADA DE RED HAT ENTERPRISE LINUX Introducción Temas tratados en esta unidad: • system-config-kickstart • Archivo kickstart del servidor • Medios de instalación • Realizar la instalación de Kickstart • Detalles del archivo kickstart
RH135-6-es-2-20110131
1
Capítulo 1. Instalación automatizada de Red Hat Enterprise Linux
Generalidades de introducción Mediante el uso de Kickstart, un administrador de sistemas puede crear un solo archivo que contenga las respuestas a todas las preguntas comúnmente formuladas durante una instalación. El instalador puede acceder a este archivo para la instalación automatizada de Red Hat Enterprise Linux.
Comparación En Red Hat Enterprise Linux, Kickstart es similar a Jumpstart de Oracle Solaris o a la instalación desatendida de Microsoft Windows.
Pasos básicos: 1.
Crear un archivo kickstart
2.
Poner el archivo kickstart a disposición del instalador
3.
Arrancar el instalador
4. Apuntar el instalador al archivo kickstart
Tabla 1.1. Pasos de Kickstart
Referencias Red Hat Enterprise Linux Installation Guide • Capítulo 32: Instalaciones de Kickstart
2
RH135-6-es-2-20110131
Crear un archivo kickstart con system-config-kickstart
Crear un archivo kickstart con system-configkickstart 1.
Crear un archivo kickstart
• Uso de system-config-kickstart
2.
Poner el archivo kickstart a disposición del instalador
• Con un editor de textos
3.
Arrancar el instalador
4. Apuntar el instalador al archivo kickstart
Tabla 1.2. Pasos de Kickstart La herramienta system-config-kickstart presenta una serie de cuadros de diálogo. Cada cuado de diálogo corresponde a una categoría de preguntas comúnmente formuladas por el instalador interactivo. system-config-kickstart no proporciona valores predeterminados para todos los elementos. En un archivo kickstart, si no se determinan los valores requeridos, el instalador solicitará una repuesta interactivamente o abortará la instalación por completo.
Referencias Red Hat Enterprise Linux Installation Guide • Capítulo 33: Configurador de Kickstart
RH135-6-es-2-20110131
3
Capítulo 1. Instalación automatizada de Red Hat Enterprise Linux
Práctica Caso de estudio
Creación de un archivo kickstart con system-configkickstart En este ejercicio, su organización implementará estaciones de trabajo basadas en Red Hat Enterprise Linux para los ingenieros y se le ha solicitado que cree un archivo kickstart para facilitar la tarea. Realice este ejercicio en su máquina desktopX como student. Instalará system-config-kickstart. Cuando se inicie, es posible que system-configkickstart le pida instalar una fuente; puede cerrar este diálogo de manera segura. Use system-config-kickstart para crear un archivo kickstart de acuerdo a los parámetros especificados a continuación. • Elija la zona horaria adecuada. • La contraseña del usuario root debe ser redhat. • Kickstart debe realizar una instalación nueva desde el servidor web http:// instructor.example.com/pub/rhel6/dvd. • El MBR debiera ser limpiado y el disco, inicializado. • El sistema debe tener un sistema de archivos ext4 de 100 MB montado en /boot. • El sistema debe tener una partición de intercambio de 512 MB. • El espacio en disco restante debe asignarse a una partición ext4 montada en /. • El dispositivo eth0 debe iniciarse durante el proceso de arranque y usar DHCP para la configuración. • Instale el grupo de paquetes Base. • Establezca un script posterior a la instalación que agregue: ENGINEERING WORKSTATION
al archivo /etc/issue. • Guarde el archivo kickstart como /home/student/engineer.cfg. ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
4
RH135-6-es-2-20110131
Poner el archivo kickstart a disposición de los instaladores
Poner el archivo kickstart a disposición de los instaladores 1.
Crear un archivo kickstart
2.
Poner el archivo kickstart a disposición del instalador
• Servidores de red: FTP, HTTP o NFS • Servidor DHCP/TFTP • Disco USB o CD-ROM • Disco duro local
3.
Arrancar el instalador
4. Apuntar el instalador al archivo kickstart
Tabla 1.3. Pasos de Kickstart Para poder comenzar una instalación automática, el instalador debe poder acceder al archivo kickstart. Existen varios métodos para hacer que el archivo kickstart esté disponible, y uno de los más comunes es a través de un servidor de red como un servidor FTP, un servidor web o un servidor NFS. Este método es bastante sencillo de implementar y facilita la administración de cambios. Con un servidor DHCP con TFTP y PXE es más complejo configurar, y no todas las ubicaciones permitirán este método. Si desea configurar Kickstart con este método, siga la documentación detallada en las referencias que se encuentran a continuación. Una manera conveniente de acceder al archivo puede ser proporcionar el archivo kickstart en USB o CD-ROM. Simplemente coloque el archivo kickstart en los medios de arranque utilizados para comenzar la instalación. No obstante, tenga cuidado al cambiar el Kickstart, dado que deberá cambiarlo en todos los medios. Puede ser útil proporcionar el archivo kickstart en el disco local. Esto permite una manera rápida de volver a crear un servidor de implementación.
RH135-6-es-2-20110131
5
Capítulo 1. Instalación automatizada de Red Hat Enterprise Linux
Referencias Red Hat Enterprise Linux Installation Guide • Sección 32.8 (Archivo kickstart a disposición)
6
RH135-6-es-2-20110131
Poner el archivo kickstart a disposición de los instaladores
Práctica Ejercicio
Poner el archivo kickstart a disposición de los instaladores a través de HTTP Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
Inicie sesión en desktopX como student.
2.
Conviértase en root e implemente un servidor web.
nota Recuerde que debe instalar, iniciar, habilitar y probar.
3.
Copie /home/student/engineer.cfg en /var/www/html/
4.
Acceda a http://desktopX/engineer.cfg de un navegador web para verificar la disponibilidad.
RH135-6-es-2-20110131
7
Capítulo 1. Instalación automatizada de Red Hat Enterprise Linux
Crear medios de arranque 1.
Crear un archivo kickstart
2.
Poner el archivo kickstart a disposición del instalador
3.
Arrancar el instalador
4. Apuntar el instalador al archivo kickstart
• Discos de instalación • PXE • boot.iso
Tabla 1.4. Pasos de Kickstart En versiones anteriores de Red Hat Enterprise Linux, el archivo boot.iso se podía encontrar en el directorio images/ en los medios de instalación. En Red Hat Enterprise Linux 6, es una descarga por separado desde la red de Red Hat. Para crear un CD, use cdrecord boot.iso. Para crear un stick USB, use dd if=boot.iso of=/dev/sdb1; no obstante, tenga en cuenta que el nombre /dev/sdb1 variará según la asignación dinámica de los nombres de los dispositivos. PXE se puede utilizar para iniciar la instalación desde la red. Es bastante complejo de configurar, y es posible que no esté permitido en su ubicación, pero PXE se puede usar para iniciar una instalación en la red.
Referencias Red Hat Enterprise Linux Installation Guide • Sección 2.3: Llevar los medios de arranque al mínimo
8
RH135-6-es-2-20110131
Apuntar el instalador al archivo kickstart
Apuntar el instalador al archivo kickstart 1.
Crear un archivo kickstart
2.
Poner el archivo kickstart a disposición del instalador
3.
Arrancar el instalador
4. Apuntar el instalador al archivo kickstart • ks=http://server/dir/file • ks=ftp://server/dir/file • ks=nfs:server:/dir/file • ks=hd:device:/dir/file • ks=cdrom:/dir/file
Tabla 1.5. Pasos de Kickstart Una vez que ha elegido su método para Kickstart, infórmele al instalador dónde se ubica el archivo kickstart. Para una instalación en una máquina virtual, puede proporcionar la URL de Kickstart en un cuadro bajo URL Options. Para una máquina física, arranque utilizando medios de instalación y presione la tecla Tab; luego ingrese una de las entradas ks= que se muestran arriba. En el entorno del salón de clases, intentaremos replicar una instalación física utilizando máquinas virtuales. Cree una nueva máquina virtual y elija PXE como método de instalación. PXE proporcionará una pantalla de arranque similar al arranque desde medios de instalación. Con la opción Install or upgrade an existing system resaltada, presione la tecla Tab. Esto mostrará la línea de arranque como se muestra a continuación: > vmlinuz initrd=initrd.img_
Agregue un espacio; luego, una de las entradas kickstart. A continuación, se proporcionan algunos ejemplos, incluida la línea de arranque completa. Estos ejemplos usan un archivo kickstart denominado ks.cfg, pero podría llevar cualquier nombre. Una vez que ha ingresado a la ubicación de kickstart, presione Enter para iniciar la instalación. > vmlinuz initrd=initrd.img ks=http://desktopX/ks.cfg
RH135-6-es-2-20110131
9
Capítulo 1. Instalación automatizada de Red Hat Enterprise Linux
> vmlinuz initrd=initrd.img ks=ftp://desktopX/pub/ks.cfg > vmlinuz initrd=initrd.img ks=nfs:desktopX/var/ftp/pub/ks.cfg > vmlinuz initrd=initrd.img ks=hd:sdb1:/kickstart-files/ks.cfg > vmlinuz initrd=initrd.img ks=cdrom:/kickstart-files/ks.cfg
Referencias Red Hat Enterprise Linux Installation Guide • Sección 32.8: Disponibilidad del archivo kickstart Red Hat Enterprise Linux Installation Guide • Sección 28.4: Automatización de la instalación con Kickstart Red Hat Enterprise Linux Installation Guide • Sección 28.2: Recursos de Kickstart
10
RH135-6-es-2-20110131
Apuntar el instalador al archivo kickstart
Práctica Ejercicio
Inicio de una instalación de Kickstart Antes de comenzar... Apague correctamente su máquina virtual serverX (vserver) para recuperar los recursos de sistemas. Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Use el archivo kickstart creado anteriormente (engineer.cfg) para implementar una nueva máquina virtual. 1.
En desktopX, cree una nueva máquina virtual con virt-manager. Elija Network Boot (PXE) como método de instalación. Configure la máquina virtual con los valores predeterminados si no se especifican a continuación: • Nombre: ingeniero • Create a disk image on the computer's hard drive: 4 GB
2.
Diseñe e ingrese una línea de invocación de Kickstart adecuada para el archivo engineer.cfg, luego inicie la instalación.
RH135-6-es-2-20110131
11
Capítulo 1. Instalación automatizada de Red Hat Enterprise Linux
Modificar un archivo kickstart En cada instalación, el instalador (anaconda) creará /root/anaconda-ks.cfg, que contendrá la configuración utilizada para generar este sistema.
nota La partición de la información incluye comentarios.
Ejemplo de un archivo kickstart: # Kickstart file automatically generated by anaconda. #version=RHEL6 install url --url=ftp://instructor.example.com/pub/rhel6/dvd lang en_US.UTF-8 keyboard us network --device eth0 --bootproto dhcp rootpw --iscrypted $1$UaJVgaTh$KrpFf3K04r9hCZ2hsaa # Reboot after installation reboot firewall --disabled authconfig --useshadow --enablemd5 selinux --enforcing timezone --utc America/New_York bootloader --location=mbr --driveorder=vda --append="crashkernel=auto rhgb quiet" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work #clearpart --all --drives=vda #part /boot --fstype=ext4 --size=100 #part pv.ZS1CDM-iUYu-Gfua-YX0W-MSzd-ftBY-7qTB1E --size=28000 #part swap --size=512 #volgroup vol0 --pesize=32768 pv.ZS1CDM-iUYu-Gfua-YX0W-MSzd-ftBY-7qTB1E #logvol /home --fstype=ext4 --name=home --vgname=vol0 --size=500 #logvol / --fstype=ext4 --name=root --vgname=vol0 --size=8192 repo --name="Red Hat Enterprise Linux" --baseurl=ftp://instructor.example.com/pub/rhel6/ dvd/ --cost=100 %packages @Base @Console internet tools @Core @Desktop @Desktop Platform @Development Tools @General Purpose Desktop @Graphical Administration Tools @Internet Browser @Network file system client @Printing client @X Window System lftp
12
RH135-6-es-2-20110131
Ejemplo de un archivo kickstart:
mutt ntp %end %post # Turn on graphical login perl -pi -e 's,id:3:initdefault,id:5:initdefault,' /etc/inittab %end
¿Por qué desearía editar manualmente un archivo kickstart? 1.
La GUI o system-config-kickstart no está disponible.
2.
Se requieren instrucciones de LVM.
3.
Se deben incluir u omitir paquetes individuales (no sólo grupos).
Si edita manualmente un archivo kickstart, use ksvalidator para validar su archivo kickstart. ksvalidator es parte del paquete system-config-kickstart, por lo tanto, es posible que primero tenga que instalar el paquete. ksvalidator asegurará que las palabras clave se usen adecuadamente, pero no validará las rutas URL, los paquetes ni grupos individuales ni ninguna parte de %post o %pre. Por ejemplo, si escribe de manera errónea firewall --disabled, es posible que obtenga la siguiente salida de ksvalidator: [student@desktopX]$ ksvalidator /tmp/anaconda-ks.cfg The following problem occurred on line 12 of the Kickstart file: Unknown command: frewall [student@desktopX]$ ksvalidator /tmp/anaconda-ks.cfg The following problem occurred on line 12 of the Kickstart file: no such option: --dsabled
Referencias Red Hat Enterprise Linux Installation Guide • Sección 32.4: Opciones de Kickstart Red Hat Enterprise Linux Installation Guide • Sección 32.5: Selección de paquetes Red Hat Enterprise Linux Installation Guide • Sección 32.6: Script previo a la instalación Red Hat Enterprise Linux Installation Guide • Sección 32.7: Script posterior a la instalación
RH135-6-es-2-20110131
13
Capítulo 1. Instalación automatizada de Red Hat Enterprise Linux
Práctica Caso de estudio
Modificar un archivo kickstart sin system-configkickstart nota Por cuestiones de tiempo, no llevará a cabo una instalación con este archivo kickstart.
Como root en desktopX, cree una copia de /root/anaconda-ks.cfg denominada /home/ student/projman.cfg. Mediante el uso de un editor de textos solamente, modifique ese archivo de modo que cumpla con los siguientes criterios: 1.
La instalación debe ser completamente automatizada, y exactamente igual a la instalación actual de desktopX (incluida la partición), excepto... • Se instalará el grupo de paquetes Backup Server. • Se instalara el paquete mtx, que no está incluido en el grupo Backup Server de modo predeterminado. • No se utilizará ninguna de las secuencias de comando existentes de %pre y %post • Se creará un archivo /etc/issue en %post, con el nombre: PROJECT MANAGEMENT
2.
ksvalidator debe poder validar el archivo.
Una vez completo todo esto, copie el archivo en /var/www/html/. ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
14
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Lista de verificación de rendimiento
Instalación de una máquina virtual con Kickstart Antes de comenzar... Apague la máquina virtual engineer que creó anteriormente y elimine la máquina virtual y su disco. Arranque serverX si no está en ejecución. Copie el archivo /root/anaconda-ks.cfg de serverX en desktopX y colóquele el nombre /home/student/test.cfg. Apague serverX después de copiar el archivo para recuperar los recursos del sistema para el resto del ejercicio de laboratorio. Modifique test.cfg según los siguientes criterios: • Agregue clearpart --all y zerombr, y particione el almacenamiento de acuerdo a lo siguiente: • /boot (ext4): 200 MB • Intercambio: 512 MB • / (ext4): 3 GB • Agregue el paquete gimp. • Cree un archivo /root/install-date con la fecha y hora. Copie test.cfg en /var/www/html/ en desktopX. Asegúrese de que Apache pueda leer el archivo. Inicie una instalación de máquina virtual con el archivo kickstart test.cfg. Colóquele el nombre test a la máquina virtual. Use PXE como método de instalación y asigne 768 MB de RAM y 1 CPU a la máquina virtual. Cree un disco local de 4 GB para el disco virtual. Vuelva a arrancar la máquina virtual cuando termine de instalarla y confirme que se haya instalado correctamente. Luego de haber completado satisfactoriamente el ejercicio y revisado su trabajo, elimine esta máquina virtual y su almacenamiento asociado para limpiar.
RH135-6-es-2-20110131
15
Capítulo 1. Instalación automatizada de Red Hat Enterprise Linux
Notas personales
16
RH135-6-es-2-20110131
Prueba de criterios
Resumen de la unidad Crear un archivo kickstart con system-config-kickstart En esta sección, aprendió a: • Crear una configuración de Kickstart desde el inicio con la utilidad system-configkickstart • Identificar los principales elementos de configuración que se encuentran en un archivo de configuración de Kickstart . Poner el archivo kickstart a disposición de los instaladores En esta sección, aprendió a: • Poner una configuración de Kickstart a disposición del instalador a través de la red (NFS, FTP o HTTP) • Poner una configuración de Kickstart a disposición del instalador a través de medios locales . Crear medios de arranque En esta sección, aprendió a: • Crear medios de arranque para iniciar el instalador • Arrancar desde la red para iniciar el instalador . Apuntar el instalador al archivo kickstart En esta sección, aprendió a: • Realizar una instalación mediante el uso del archivo de configuración de Kickstart ahora disponible . Modificar un archivo kickstart En esta sección, aprendió a: • Modificar una configuración de Kickstart existente con la utilidad system-configkickstart o un editor de textos .
RH135-6-es-2-20110131
17
18
UNIDAD DOS
ACCESO A LA LÍNEA DE COMANDO Introducción Temas tratados en esta unidad: • Comprensión del intérprete de comandos de bash • Llegada a las líneas de comando locales y remotas
RH135-6-es-2-20110131
19
Capítulo 2. Acceso a la línea de comando
Acceso a la línea de comando a nivel local Un intérprete de comandos es un programa que proporciona una línea de comando que los usuarios pueden utilizar para interactuar con la computadora. El programa del intérprete de comando estándar utilizado en Red Hat Enterprise Linux es bash (el Bourne-Again Shell, una versión mejorada del Bourne shell, sh, ampliamente usado en sistemas UNIX heredados). A pesar de las herramientas gráficas mejoradas para configurar los sistemas Linux, a veces la línea de comando es la manera más eficiente de completar una tarea o cambiar la configuración del sistema. En muchos servidores Linux, las interfaces gráficas no están instaladas por varias razones, que es uno de los motivos por el cual comprender cómo usar el intérprete de comandos es importante.
Ventanas terminales El entorno gráfico en Red Hat Enterprise Linux proporciona programas de emulación terminal que le permiten acceder a un intérprete de comandos a través de una ventana terminal gráfica. Para abrir una ventana terminal mientras está en una sesión de escritorio GNOME, seleccione el siguiente elemento del menú: Applications → System Tools → Terminal Cuando abre una ventana terminal, se abre un aviso del intérprete de comandos inmediatamente como el usuario que inició el programa terminal gráfico. El aviso del intérprete de comandos y la barra de títulos de la ventana terminal indicarán su nombre de usuario actual, el nombre del host y el directorio de trabajo.
Consolas virtuales Otra forma de acceder a un intérprete de comandos es desde una consola virtual. La consola física de la máquina Linux,el teclado y el hardware de pantalla, admite múltiples consolas virtuales que actúan como terminales separadas. Cada consola virtual admite un inicio de sesión independiente. Si el entorno gráfico está disponible, se ejecutará en la primera consola virtual en Red Hat Enterprise Linux 6. Cinco señales de acceso a sesión de texto adicionales están disponibles en las consolas dos a la seis (o de la consola uno a la cinco si el entorno gráfico está desactivado). Con un entorno gráfico en ejecución, acceda a una señal de acceso a sesión de texto en una consola virtual al mantener presionado Ctrl+Alt y presionar una tecla de función (F2 a la F6). Presione Ctrl+Alt+F1 para volver a la primera consola virtual y el escritorio gráfico.
nota En la versión Red Hat Enterprise Linux 5 y versiones anteriores, las primeras seis consolas virtuales siempre proporcionaron avisos de inicio de sesión de texto. El entorno gráfico, cuando estaba disponible, se ejecutaba en la consola virtual siete (a la que se accedía a través de Ctrl+Alt+F7).
20
RH135-6-es-2-20110131
Conceptos básicos del intérprete de comandos
Conceptos básicos del intérprete de comandos A continuación se expresan algunas sugerencias sobre cómo usar el intérprete de comandos una vez que haya iniciado sesión: • Por convención, un aviso del intérprete de comandos $ le muestra que inició sesión como usuario regular, mientras que un aviso del intérprete de comandos # le muestra que inició sesión como el superusuario root. • Para cambiar al superusuario, escriba su - e ingrese la contraseña de root cuando sea solicitada. Cuando salga del intérprete de comandos root con logout o Ctrl+D, volverá al intérprete de comandos desde donde ejecutó su -. • Después de iniciar sesión, puede escribir algunos comandos para obtener información sobre la sesión del intérprete de comandos: pwd (su directorio actual), id (el usuario y grupo con el que inició sesión) y tty (el dispositivo terminal actual). • En Administración de sistemas Red Hat I, analizamos una cantidad de comandos usados para trabajar con archivos desde la línea de comando. Use cd para ir a otros directorios, cp para copiar archivos, mv para mover y cambiar el nombre de archivos, mkdir para crear directorios, rm para eliminar archivos y rmdir para eliminar directorios vacíos. • Recuerde que el manual del sistema local es un recurso útil. Escriba man seguido de cualquiera de los comandos detallados arriba para obtener más información sobre cómo funcionan. Taller
Acceso a la línea de comando a nivel local Use consolas virtuales para obtener acceso a una interfaz del intérprete de comandos. Sígalo junto con el instructor y use el espacio provisto a continuación para sus notas. 1.
Desde su escritorio, cambie a una consola virtual al presionar Ctrl+Alt+F2 e inicie sesión
2.
Cambie a una consola virtual diferente al presionar Ctrl+Alt+F3
3.
Cambie nuevamente a la otra consola virtual al presionar Ctrl+Alt+F2
4.
Remita a una instancia superior los privilegios con su -
5.
Salga del intérprete de comandos privilegiado al escribir exit
6.
Para salir de la sesión completamente (y volver al aviso de inicio de sesión) escriba nuevamente exit
7.
Vuelva a la primera consola virtual (generalmente el escritorio) al presionar Ctrl+Alt+F1
RH135-6-es-2-20110131
21
Capítulo 2. Acceso a la línea de comando
Referencias Páginas del manual: bash(1), su(1), Xorg(1) (consulte "TECLADO"), pts(4) y console(4) Nota: Algunos detalles de la consola(4) que incluyen init(8) e inittab(5) son obsoletos.
22
RH135-6-es-2-20110131
Conceptos básicos del intérprete de comandos
Práctica Cuestionario
Acceso a la línea de comando local 1.
Escriba
para cambiar al segundo terminal virtual.
2.
Escriba
para cambiar a la cuenta de usuario root.
3.
Escriba para cerrar sesión de un intérprete de comandos su –.
4.
Escriba
para cerrar sesión del terminal virtual.
5.
Escriba
para regresar a la GUI.
RH135-6-es-2-20110131
23
Capítulo 2. Acceso a la línea de comando
Acceso a la línea de comando mediante ssh El Secure Shell, ssh, se utiliza para ejecutar de manera segura un intérprete de comandos en un sistema remoto. Si tiene una cuenta de usuario en un sistema Linux remoto que proporciona el servicio SSH, ssh es el comando normalmente usado para iniciar sesión de forma remota en ese sistema. El comando ssh también se puede usar para ejecutar un comando individual en un sistema remoto. Aquí le mostramos algunos ejemplos de la sintaxis del comando ssh para el inicio de sesión remoto y la ejecución remota: • Cree un intérprete de comandos interactivo remoto como el usuario actual, luego regrese cuando haya finalizado (exit) [student@host ~]$ ssh remotehost student@remotehost's password: [student@remotehost ~]$ exit Connection to remotehost closed. [student@host ~]$
• Conéctese a un intérprete de comandos remoto como un usuario diferente (remoteuser) en un host determinado (remotehost): [student@host ~]$ ssh remoteuser@remotehost remoteuser@remotehost's password: remoteuser@remotehost ~]$
• Ejecute un único comando (hostname) en un host remoto (remotehost) y como usuario remoto (remoteuser) de una manera en que regrese la salida a la pantalla local: [student@host ~]$ ssh remotehost hostname student@remotehost's password: remotehost.example.com [student@host ~]$
[student@host ~]$ ssh remoteuser@remotehost hostname remoteuser@remotehost's password: remotehost.example.com [student@host ~]$
El comando w muestra una lista de usuarios actualmente en sesión en la computadora. Esto es especialmente útil para mostrar qué usuarios están en sesión con ssh, desde qué ubicaciones remotas y qué están haciendo. [student@host ~]$ USER TTY student tty1 root tty6 student pts/0 student pts/1 student pts/3 visitor pts/6
24
w FROM :0 :0.0 :0.0 :0.0 server2.example.
LOGIN@ IDLE JCPU PCPU WHAT Wed08 2days 1:52m 0.07s pam: gdm-passwo 12:33 4:14m 16.27s 15.74s -bash Wed08 5:11 1.63s 1.60s /usr/bin/gnomeWed08 43:44 14.48s 13.81s vim hello.c Wed14 0.00s 0.06s 0.06s w 09:22 3:14 0.02s 0.02s -bash
RH135-6-es-2-20110131
Llaves del host SSH
En el ejemplo anterior, el usuario student inició sesión en la consola virtual 1 (tty1) a través del inicio de sesión gráfico (:0) a aproximadamente las 8:00 del miércoles. El usuario student actualmente tiene tres pseudoterminales abiertas (pts/0, pts/1 y pts/3) iniciadas mediante el entorno gráfico; estas son casi seguramente ventanas terminales. En una de ellas, student está editando hello.c. El usuario root inició sesión en la consola virtual 6, hoy a las 12:33. El usuario visitor inició sesión hoy a las 9:22 desde el host server2.example.com (observe que el nombre ha sido truncado), probablemente utilizando ssh, y ha estado inactivo en el aviso del intérprete de comandos durante tres minutos y catorce segundos.
Llaves del host SSH SSH asegura la comunicación a través de la encriptación con llave pública. Cuando un cliente ssh se conecta a un servidor SSH, antes de que el cliente inicie sesión, el servidor le envía una copia de su llave pública. Esto se utiliza para establecer la encriptación segura para el canal de comunicación y para autenticar el servidor para el cliente. La primera vez que un usuario utiliza ssh para conectarse a un servidor en particular, el comando ssh almacena la llave pública del servidor en el archivo ~/.ssh/known_hosts del usuario. Luego, cada vez que el usuario se conecte después de eso, se asegura de obtener la misma llave pública desde el servidor al comparar la entrada del servidor en el archivo ~/.ssh/ known_hosts con la llave pública que envió el servidor. Si las llaves no coinciden, el cliente asume que el tráfico de la red está siendo secuestrado o que el servidor ha sido comprometido e interrumpe la conexión. Esto significa que si se cambia una llave pública del servidor (porque la llave se perdió debido a una falla en el disco duro, o porque fue reemplazada por algún motivo legítimo), los usuarios deberán actualizar los archivos ~/.ssh/known_hosts para eliminar la entrada anterior para poder iniciar sesión. • Los ID de host se almacenan en ~/.ssh/known_hosts , en su sistema local: $ cat ~/.ssh/known_hosts remotehost,192.168.0.101 ssh-rsa AAAAB3Nzac...
• Las llaves de host se almacenan en /etc/ssh/ssh_host_key*. $ ls /etc/ssh/*key* ssh_host_dsa_key ssh_host_dsa_key.pub
ssh_host_key ssh_host_key.pub
ssh_host_rsa_key ssh_host_rsa_key.pub
nota Un método aún mejor es agregar entradas que hagan coincidir los archivos ssh_host_*key.pub de un servidor con el usuario ~/.ssh/known_hosts o /etc/ ssh/ssh_known_hosts en todo el sistema por anticipado cuando la llave pública cambia. Consulte ssh-copy-id(1) para conocer una manera avanzada de administrar llaves de ssh.
RH135-6-es-2-20110131
25
Capítulo 2. Acceso a la línea de comando
Referencias Páginas del manual: ssh(1), w(1), hostname(1)
26
RH135-6-es-2-20110131
Llaves del host SSH
Práctica Lista de verificación de rendimiento
Acceso a la línea de comando remota Inicie sesión como student en su máquina desktopX. Use ssh para conectarse a su máquina serverX. Acepte la llave de host si se solicita. Ejecute el comando w y exit. Use ssh para conectarse a su máquina serverX como root. Ejecute el comando w y salga. Quite el archivo de hosts conocidos de SSH. Use ssh para conectarse a serverX como root nuevamente. Acepte la llave ssh, inicie sesión y luego salga de la sesión. Use ssh de forma no interactiva para ejecutar el comando hostname en serverX como root.
RH135-6-es-2-20110131
27
Capítulo 2. Acceso a la línea de comando
Prueba
Prueba de criterios Ejercicio
Uso de la línea de comando Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
Cambie al segundo terminal virtual e inicie sesión como student en su máquina desktopX.
2.
Conviértase en usuario root.
3.
Use ssh para conectarse a su máquina serverX. Acepte la llave de host si se solicita.
4.
Ejecute el comando w y exit.
5.
Use SSH para conectarse a su máquina serverX como student.
6.
Ejecute el comando w y exit.
7.
Quite el archivo de hosts conocidos de ssh.
8.
ssh a serverX como student nuevamente, y observe que se le solicita nuevamente la llave del host. Acepte la llave.
9.
Una vez que inició sesión, exit hacia atrás a su intérprete de comandos en desktopX.
10. Use ssh de forma no interactiva para ejecutar el comando ip route en serverX como root.
28
RH135-6-es-2-20110131
Llaves del host SSH
Notas personales
RH135-6-es-2-20110131
29
Capítulo 2. Acceso a la línea de comando
Resumen de la unidad Acceso a la línea de comando a nivel local En esta sección, aprendió a: • Acceso a la línea de comando a nivel local con ventanas terminales • Acceder a la línea de comando locamente con consolas virtuales . Acceso a la línea de comando mediante ssh En esta sección, aprendió a: • Acceder a la línea de comando de forma remota con ssh • Identificar ubicaciones de almacenamiento de llaves y ID de host .
30
RH135-6-es-2-20110131
UNIDAD TRES
HERRAMIENTAS INTERMEDIAS DE LA LÍNEA DE COMANDO Introducción Temas tratados en esta unidad: • Creación y uso de enlaces físicos • Archivado y compresión de archivos • Uso del editor de textos vim
RH135-6-es-2-20110131
31
Capítulo 3. Herramientas intermedias de la línea de comando
Uso de enlaces físicos En Administración de sistemas Red Hat I, se presentaron los enlaces simbólicos,también conocidos como symlinks o enlaces blandos. Un symlink es un archivo especial que apunta a otro archivo por el nombre, y que se puede tratar como si fuera ese archivo, dentro de ciertos límites. En esta sección, aprenderá sobre otro tipo de enlace, denominado enlace físico, y en qué se diferencian de los symlinks.
Every filesystem contains a list of files
inode Table 1
File Metadata Pointer to data block
2
File Metadata Pointer to data block
Dat a Blocks Regular file (-) Arbitrary data Direct ory (d) 2 256
File Metadata 3 Pointer to data block
filename
1
hardlink
1
symlink
3
Sym bolic link (l) filename (that is pointed to)
Cada archivo en un sistema de archivos POSIX como ext4 tiene un nodo de índice, o inodo,asociado a este. El inodo contiene la información básica sobre el archivo: sus permisos, marcas de tiempo y punteros para los datos almacenados en el archivo. Cuando crea un archivo nuevo, se asigna a este un inodo sin usar en el sistema de archivos, y se agrega una entrada al directorio en el que se encuentra el nuevo archivo, lo que asigna el nombre del archivo al número del inodo. Un enlace físico le permite configurar un nombre adicional que apunte al mismo número de inodo desde alguna otra parte en el mismo sistema de archivos. Dado que los enlaces físicos apuntan un nombre a los datos del inodo, no se pueden utilizar para asociar dos archivos en sistemas de archivos separados. Los enlaces blandos, que apuntan un nombre a otro nombre, pueden cruzar sistemas de archivos e incluso apuntar a directorios. Por otra parte, todos los enlaces físicos apuntan de manera equitativa a los mismos datos; ningún
32
RH135-6-es-2-20110131
Creación y visualización de enlaces
nombre es más importante que otro, y se pueden eliminar de manera independiente. Con los enlaces blandos, si se elimina el archivo original, también se rompen todos los enlaces blandos que apuntan a este. Los enlaces físicos son creados por el comando ln, del mismo modo que los symlinks, pero sin la opción -s: [user@host ~]$ ln original hardlink
Enlaces físicos
Enlaces simbólicos
Varios nombres que apuntan al mismo inodo.
Nombres adicionales que apuntan al nombre original.
Incrementan el conteo de enlaces.
Archivo aparte.
Todos los nombres son iguales.
Los nombres adicionales se pueden romper.
Los datos se preservan hasta que se eliminan todos los nombres.
Se produce una pérdida de datos si se elimina el nombre original.
Deben estar en el mismo sistema de archivos
Pueden cruzar a través de sistemas de archivos
Tabla 3.1. Comparación entre tipos de enlaces
Creación y visualización de enlaces 1.
Crear un enlace simbólico: $ touch original $ ln -s original symlink
2.
Crear un enlace físico: $ ln original hardlink
3.
Ver inodo, conteo de enlaces y referencia de enlace simbólico: $ ls -il original symlink hardlink 65661 -rw-r--r--. 2 root root 0 Jan 26 12:20 hardlink 65661 -rw-r--r--. 2 root root 0 Jan 26 12:20 original 65662 lrwxrwxrwx. 1 root root
8
Jan 26 12:20 symlink
-> original
La primera columna de la salida de ls -il es el número de inodo. Conteo de enlaces. Este aumenta cuando crea un nuevo enlace físico, y disminuye cuando elimina uno de los enlaces físicos. Este es el tamaño en bytes del archivo (el nombre "original" tiene ocho caracteres de un byte). Nombre del enlace simbólico. Nombre del archivo al cual apunta el enlace simbólico. Los archivos original y hardlink tienen el mismo número de inodo (65661) porque en realidad existe solo un archivo con múltiples nombres asociados a este. Si se elimina algún
RH135-6-es-2-20110131
33
Capítulo 3. Herramientas intermedias de la línea de comando
nombre de archivo, el otro nombre de archivo quedaría intacto, pero se reduciría el conteo de enlaces (de 2 a 1). El enlace simbólico (symlink) tiene un número de inodo diferente, porque es un archivo diferente. La capacidad de acceder al archivo symlink está basada en los permisos de original (rw-r-r-). Los permisos rwxrwxrwx que se muestran en symlink no tienen significado. Elimine original, y symlink apuntará a un archivo faltante (es un enlace roto).
Referencias Páginas del manual: ln(1), ls(1), symlink(7)
34
RH135-6-es-2-20110131
Creación y visualización de enlaces
Práctica Cuestionario
Comparación entre enlaces físicos y simbólicos 1.
Un se puede utilizar para cruzar entre sistemas de archivos.
2.
Un conteo de enlaces.
3.
Cuando crea un , puede eliminar el archivo original sin perder ningún dato.
RH135-6-es-2-20110131
aumenta el
35
Capítulo 3. Herramientas intermedias de la línea de comando
Práctica Ejercicio
Implementar enlaces físicos y simbólicos Use esta tarea para practicar la creación y la exploración de enlaces físicos y simbólicos. Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
Inicie sesión en la máquina desktopX como student.
2.
Cree un archivo con el nombre test1 en su directorio hogar.
3.
Cree un enlace simbólico en el directorio hogar denominado symlink que apunte al archivo test1, y compruebe que symlink apunte al contenido de test1.
4.
Cree un enlace físico en el directorio hogar con el nombre hardlink que apunte al archivo test1.
5.
¿Cuál es el conteo de enlaces para el archivo test1?
6.
Quite el archivo test1.
7.
¿Qué sucedió con symlink?
8.
¿Cuál es el conteo de enlaces en hardlink?
9.
¿Cómo recuperaría los datos en el archivo test1?
36
RH135-6-es-2-20110131
Archivadores y compresión
Archivadores y compresión El archivado y la compresión de archivos es útil cuando se realizan copias de seguridad y se transfieren datos a través de una red. Uno de los comandos más antiguos y más comunes para crear y trabajar con archivos de copias de seguridad es el comando tar (que originalmente significaba "tape archiver"). Con el comando tar, puede reunir grandes conjuntos de archivos en un único archivo (fichero). Puede indicar que el archivo debe comprimirse con la compresión gzip o bzip2. Algunas opciones le permiten realizar copias de seguridad de funciones especiales asociadas con los archivos de los que realizó copias de seguridad, como atributos de archivos extendidos y contextos de SELinux. El comando tar también puede enumerar el contenido de ficheros o extraer sus archivos a su sistema actual. En esta sección, se incluyen ejemplos de cómo usar el comando tar.
Opciones principales de tar 1.
= crear
2.
= extraer
3.
= evaluar
4.
= detallado
5.
= nombre de archivo
6.
= gzip
7.
= bzip2
Para usar el comando tar, se requiere una de las siguientes opciones: c (crear un fichero), x (extraer un fichero) o t (evaluar o enumerar el contenido de un fichero). Otras opciones le permiten agregar detalles (v), indicar el nombre del fichero de archivos que se creará o extraerá (f filename) y configurar el tipo de compresión que se usará (g para gzip o j para bzip2).
Ejemplo de sintaxis de tar Crear (c) un fichero de archivos comprimido como gzip (z) (f /tmp/etc.tar.gz) del directorio /etc. Sea detallado (v) con la salida. El comando tar no tiene una capacidad espacial para leer archivos para los que no tiene acceso a la lectura, por lo tanto, ejecute este comando como root para realizar una copia de seguridad del directorio /etc completo. # tar cvzf /tmp/etc.tar.gz /etc
Muestre un extenso (v) listado (t) de archivos en un fichero de archivos comprimido como bzip2 (j) (f /tmp/abc.tar.bz2).
RH135-6-es-2-20110131
37
Capítulo 3. Herramientas intermedias de la línea de comando
$ tar tvjf /tmp/abc.tar.bz2
Extraiga (x) y vea (v) todos los archivos de un fichero de archivos (f /tmp/etc.tar.gz) comprimido como gzip (z) al directorio actual. $ tar xvzf /tmp/etc.tgz
Además, se pueden usar gzip y bzip2 de modo independiente para comprimir archivos. gunzip y bunzip2 son los comandos de descompresión correspondientes. Por ejemplo, bunzip abc.tar.bz2 da como resultado el archivo tar descomprimido abc.tar. Del mismo modo, gunzip /tmp/etc.tgz da como resultado el archivo tar descomprimido etc.tar. Use este espacio para sus notas.
Referencias Páginas del manual: tar(1), bzip2(1), gzip(1)
38
RH135-6-es-2-20110131
Archivadores y compresión
Práctica Ejercicio
Archivar y comprimir archivos Realice una copia de seguridad del directorio /etc desde serverX para descomprimir un fichero de archivos tar comprimido. Use el comando rsync para copiar ese fichero en su sistema desktopX. Luego extraiga los archivos al directorio /backups en desktopX. Cree el directorio / backups si aún no existe. Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
Inicie sesión en serverX como root.
2.
Cree un archivo de /etc con la compresión gzip. Guarde el archivo como /tmp/ etc.tar.gz.
3.
Copie el archivo /tmp/etc.tar.gz desde su serverX al directorio /backups en su máquina desktopX.
4.
Extraiga el archivo comprimido en /backups, en desktopX.
RH135-6-es-2-20110131
39
Capítulo 3. Herramientas intermedias de la línea de comando
Introducción a VIM VIM (vi Improved) es un poderoso editor de textos que es más sofisticado que gedit. Además, a diferencia de gedit, siempre puede esperar que vim (o su antecesor, vi) esté disponible en cualquier sistema Linux. El editor vim admite manipulaciones de texto sofisticado que son muy útiles para la administración de sistemas. De hecho, si está familiarizado con la utilidad vi, descubrirá que vim incluye funciones de vi, además de muchas otras funciones como editar con la pantalla dividida, formatear en color tipos de archivos conocidos y resaltar texto para copiar y cambiar texto, por nombrar algunas. Un motivo por el cual vim es poderoso pero complicado de aprender es que es un editor modal; funciona de manera diferente según en qué modo esté. Para comenzar, existen tres modos que debe conocer: modo normal (también denominado modo comandos), modo insertar y modo ex.
Modos principales de vim 1.
El modo se usa para la exploración de archivos, copiar y pegar, y ejecutar comandos simples.
2.
El modo edición de texto normal.
3.
El modo se usa para guardar, salir, buscar y reemplazar, y realizar otras operaciones complejas.
se usa para la
Modo comandos Después de abrir el editor vim, comienza en modo comandos. Este es el modo básico al que regresa cuando finaliza una edición y se prepara para guardar, buscar y reemplazar texto, o realiza otras operaciones. En este modo, puede moverse por el archivo (con las teclas PageUp, PageDown o las teclas de flechas), y al escribir los caracteres se pueden ejecutar muchos comandos diferentes para hacer cosas como seleccionar, copiar o pegar texto. Un comando útil aquí es u, para deshacer el último cambio. Si está confundido acerca de en qué modo vim está, puede escribir Esc un par de veces para volver al modo comandos.
Modo Insertar Desde el modo comandos, presione la tecla i para ir al modo insertar en la posición actual del cursor. Luego, puede comenzar a ingresar texto. Puede usar las teclas de flechas para mover el cursor en vim mientras permanece en el modo insertar. Presione la tecla Esc para salir del modo insertar y volver al modo comandos.
40
RH135-6-es-2-20110131
Modo ex
Modo ex Desde el modo comandos, presione un carácter : para ir al modo ex, y el cursor se mueve a la parte inferior de la pantalla. Presione :q (para salir), :w (para escribir cambios en el archivo) o :wq para escribir y salir. Utilice el carácter ! para anular una acción predeterminada. Por ejemplo :q! le permite salir sin guardar y :w! le permite anular un archivo de solo lectura (si es propietario de este). Otros comandos están disponibles en el modo ex, incluido un sistema de ayuda en línea bajo :help.
Importante En Red Hat Enterprise Linux, vi ejecuta vim en un modo de compatibilidad con vi más simple, sin todas las mejoras de vim. Esto puede ser confuso, porque vi es un alias para el comando vim con todas las funciones para todos los usuario con UID por encima de 200. Por lo tanto, si ejecuta vi como un usuario típico, obtendrá vim; pero si ejecuta vi como usuario root, obtendrá el comando vi simplificado. El usuario root puede funcionar en esto al ejecutar vim de manera explícita.
Referencias Página del manual: vim(1)
RH135-6-es-2-20110131
41
Capítulo 3. Herramientas intermedias de la línea de comando
Flujo de trabajo básico de VIM El instructor demostrará un ejemplo típico de cómo editar un archivo con los comandos vim básicos. Es posible realizar cosas mucho más sofisticadas, pero este flujo de trabajo básico es el mínimo necesario para ser productivo con vim.
Operaciones de VIM 1.
Abrir un archivo: vim filename
2.
Usar las teclas de flechas para ubicar el cursor.
3.
Cambiar a modo inserción (de modo comando): i
4. Ingresar su texto. 5.
Regresar a modo comando: Esc
6. Cambiar a modo ex (de modo comando): : (presionar la tecla de los dos puntos) 7.
Guardar el archivo (desde el modo ex): w o bien Guardar y salir (desde el modo ex): wq o bien Salir sin implementar los cambios (desde el modo ex): q!
También recuerde que, en el modo comandos, puede deshacer los cambios con el comando u.
nota El comando vimtutor, incluido con vim, ejecuta un tutorial que puede serle útil para aprender más acerca de vim fuera de clase. Observe que vimtutor está disponible en múltiples idiomas y respeta automáticamente la configuración de $LANG actual; consulte la Introducción a este libro y la página del manual vimtutor(1) para obtener más detalles.
Referencias Páginas del manual: vim(1), vimtutor(1)
42
RH135-6-es-2-20110131
Modo ex
Práctica Ejercicio
Editar archivos con VIM Cree y edite un pequeño archivo de texto para practicar algunos comandos vim. Luego, edite el archivo /etc/issues y observe cómo el contenido de ese archivo se muestra en los avisos de inicio de sesión de sus consolas virtuales. Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
Abra un intérprete de comandos en su máquina desktopX y conviértase en usuario root.
2.
Abra un archivo de práctica: vim /tmp/testfile.txt
3.
Presione i para ir al modo insertar. Luego escriba texto que se vea de la siguiente manera: Change the last word in this line to goose: duck Quack Quack Remove the first two Quack words. Copy this line so it appears twice Make sure this is the first line in the file.
4.
Presione la tecla Esc y escriba 1G para volver a la primera línea del archivo.
5.
En la primera línea, cambie la palabra duck a goose.
6.
En la segunda línea, elimine las primeras dos apariciones de Quack
7.
Copie la tercera línea, luego péguela de modo que aparezca dos veces.
8.
Elimine la línea final, luego péguela de modo que aparezca como la primera línea de la fila. Cuando haya finalizado, el texto completo debe aparecer de la siguiente manera: Make sure this is the first line in the file. Change the last word in this line to goose: goose Remove the first two Quack words. Copy this line so it appears twice Copy this line so it appears twice
9.
Guarde y salga del archivo (escriba :wq).
10. A continuación, use VIM para editar /etc/issue y agregue el texto Welcome!
en la parte superior del archivo. 11.
Realice una prueba al cambiar a una consola virtual (Ctrl+AltF2) y al presionar Enter para actualizar el aviso. El texto Welcome! debe aparecer en la parte superior del aviso de inicio de sesión.
RH135-6-es-2-20110131
43
Capítulo 3. Herramientas intermedias de la línea de comando
Prueba
Prueba de criterios Ejercicio
Practicar el uso de ln, tar y VIM Combine las habilidades que aprendió en esta unidad; para ello, cree enlaces (físico y blandos) con el comando ln, cree un fichero de archivos tar y use el editor de texto vim. Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
Inicie sesión en serverX como student.
2.
Cree un enlace simbólico a /etc/passwd en su directorio hogar.
3.
Cree un nuevo archivo en su directorio hogar con el nombre newfile.
4.
Cree un enlace físico a newfile, con el nombre newhardlink.
5.
Archive y comprima (con la compresión bzip2) su directorio hogar en /tmp/studenthome.tar.bz2.
6.
Cree un nuevo archivo en su directorio hogar con el nombre myvimfile.txt con vim e incluya la siguiente línea: I wrote this using vim!
44
RH135-6-es-2-20110131
Modo ex
Notas personales
RH135-6-es-2-20110131
45
Capítulo 3. Herramientas intermedias de la línea de comando
Resumen de la unidad Uso de enlaces físicos En esta sección, aprendió a: • Identificar las diferencias entre enlaces físicos y simbólicos • Crear y usar enlaces físicos . Archivadores y compresión En esta sección, aprendió a: • Archivar y comprimir archivos con las herramientas de la línea de comando (tar, gzip y bzip2) . Introducción a VIM En esta sección, aprendió a: • Identificar los tres modos principales de vim • Use algunos comandos básicos con el editor vim . Flujo de trabajo básico de VIM En esta sección, aprendió a: • Crear y modificar archivos con vim .
46
RH135-6-es-2-20110131
UNIDAD CUATRO
EXPRESIONES REGULARES, CANALIZACIONES Y REDIRECCIÓN DE ENTRADA/ SALIDA (I/O) Introducción Temas tratados en esta unidad: • Coincidencias de patrones de expresiones regulares • Filtro de texto grep • Redirección de entrada/salida
RH135-6-es-2-20110131
47
Capítulo 4. Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
Expresiones regulares básicas Las expresiones regulares son cadenas de texto especiales que se utilizan para buscar y hacer coincidir patrones de texto. Proporcionan una manera poderosa pero concisa de expresar exactamente el texto con el que debe coincidir una búsqueda. No son tan sencillas para el usuario novato como podría serlo la herramienta de búsqueda gráfica, pero permiten expresar condiciones complejas con algo de práctica. Las expresiones regulares son utilizadas por muchas herramientas de la línea de comando de Linux, incluidas less, man, vim y otras que aún no hemos presentado. Las expresiones regulares a veces se denominan regexps o regexes de manera abreviada. La regla básica de las expresiones regulares es que los caracteres normales que aparecen en una cadena regex son tratados como los caracteres que deseamos hacer coincidir, en mayor parte. Los caracteres especiales o de puntuación se utilizan como comodines, para indicar repetición, para marcar límites de líneas o palabras, o para otros propósitos de coincidencia especiales. Las expresiones regulares también son amables; se combinan con la cadena más larga posible a la que se ajusten. La tabla que se muestra a continuación proporciona algunos ejemplos de sintaxis de expresiones regulares. Expresión Definición
Ejemplo de expresión regular
Coincidencias de ejemplo
d
dog
dog
Literal: la letra "d"
dogma slumdogs *
Modificador: cero o más del carácter anterior
hel*o
hello Theophilus helllllllo
.
Comodín: cualquier carácter simple
test.txt
test.txt test0txt.jpg mytest!txt
[]
Comodín: cualquier carácter simple del conjunto
file[1234]
file1 file2 file3.txt somefile4
[^ ]
Comodín: cualquier carácter simple que no está en el conjunto
file[^0123456789]
filea fileA fileb.txt
48
RH135-6-es-2-20110131
Expresión Definición
Ejemplo de expresión regular
Coincidencias de ejemplo somefile%
^
$
Anclaje: la línea comienza con...
^Test
Anclaje: la línea termina con...
test$
[la línea comienza con]Test [la línea comienza con]Testing. 1, 2, 3, 4. test[final de la línea] some test[final de la línea]
.*
combinación de . (cualquier carácter) más * (cero o más)
^Test.*123
[la línea comienza con]Testing1234 [la línea comienza con]Test123.txt [la línea comienza con]Test this has 123456.
\
Trata al siguiente carácter como literal.
test\.$
test. [final de la línea]
Tabla 4.1. Sintaxis de expresiones regulares
nota Existen dos variaciones de la sintaxis de expresiones regulares, básica y extendida, como se documenta en regex(7). Difieren en algunos detalles menores que no afectan el análisis de arriba.
Más ejemplos de expresiones regulares 1.
¿Con qué coincide h[aiou]t?
2.
¿Con qué coincide b[ol][oa]t?
RH135-6-es-2-20110131
49
Capítulo 4. Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
nota Estudiantes avanzados. El uso de rangos como [a-z] para hacer coincidir cosas como todos los caracteres en minúscula es proclive a errores dado que el ordenamiento varía según la configuración de $LANG cuando regex se ejecuta. El uso de clases de caracteres POSIX como as [[:lower:]] generalmente es mejor; consulte la página del manual regex(7) para obtener más detalles. No analizaremos esto en profundidad en este curso.
Referencias Página del manual: regex(7)
50
RH135-6-es-2-20110131
Práctica Cuestionario
Coincidencia de expresiones regulares Seleccione todos los elementos que coincidan con la expresión regular en cada uno de estos casos. 1.
ba[nr]k (seleccione uno o más de los siguientes…) a. bank b. banrk c. bark d. bakk
2.
^root (seleccione uno o más de los siguientes…) a. root:x:0:0:root:/root:/bin/bash b. operator:x:11:0:operator:/root:/sbin/nologin c. ¡El usuario root es el mejor! d. Usted no es usuario root.
3.
root (seleccione uno o más de los siguientes…) a. root:x:0:0:root:/root:/bin/bash b. operator:x:11:0:operator:/root:/sbin/nologin c. ¡El usuario root es el mejor! d. Usted no es usuario root.
4.
r..t (seleccione uno o más de los siguientes…) a. root:x:0:0:root:/root:/bin/bash b. operator:x:11:0:operator:/root:/sbin/nologin c. ¡El usuario root es el mejor! d. Usted no es usuario root.
RH135-6-es-2-20110131
51
Capítulo 4. Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
Práctica Cuestionario
Crear una expresión regular Cree una expresión regular que coincida para cada uno de los siguientes requisitos. 1.
La línea comienza con "Probar" o "probar".
2.
La línea finaliza con "fin".
3.
La línea completa es: Esto es una prueba.
4.
Cualquiera de los siguientes nombres: archivo5 archivo6 archivo7 archivo8
5.
Cualquiera de los siguientes nombres: archivo2 archivo4 archivo6 archivo8
52
RH135-6-es-2-20110131
Práctica Ejercicio
Expresiones regulares en las páginas man Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Abra la página del manual passwd(1) y realice las siguientes búsquedas de expresiones regulares. Recuerde que debe usar la barra diagonal (/) para buscar páginas de manual.
Importante Asegúrese de volver a la parte superior de la página del manual entre cada una de estas búsquedas; para ello, presione la tecla g.
1.
Buscar exit
2.
Buscar una línea que comience con exit
3.
Buscar password
4.
Buscar password.
5.
Busque cualquier cosa hasta (e incluido) pass
RH135-6-es-2-20110131
53
Capítulo 4. Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
Uso de grep El comando grep es un General Regular Expression Parser (analizador de expresiones regulares general); busca en un archivo cadenas que coincidan con una expresión regular dada, y, de manera predeterminada, escribe cualquier línea que contenga una cadena que coincida. Existen muchas opciones que se pueden configurar para grep, que afectan su salida. Algunas de las más útiles incluyen --color para colorear el patrón en la línea que coincidió, -i que hace coincidir la regex de forma que no distinga entre mayúsculas y minúsculas y -v que escribe cualquier línea que no contenga una cadena que coincida con la regex. El comando grep puede ser una herramienta sorprendentemente útil al analizar los archivos de configuración o al buscar información almacenada en archivos de texto en el sistema. Analizaremos el uso de grep mediante la extracción de líneas del archivo /etc/passwd. Tome nota sobre el patrón con en el coincide cada uno de estos comandos. • grep 'root' /etc/passwd
• grep --color 'root' /etc/passwd
• grep '^root' /etc/passwd
• grep ':/bin/bash$' /etc/passwd
• grep ':/home/.*:' /etc/passwd
Use este espacio para sus notas.
Referencias Páginas del manual: grep(1), passwd(5)
54
RH135-6-es-2-20110131
Práctica Cuestionario
Crear comandos grep Cree comandos grep para cumplir con los requisitos indicados a continuación en función del archivo /etc/passwd. 1.
Escriba todos los nombres de usuario que comiencen con la letra r.
2.
Escriba todos los nombres de usuario que comiencen con la letra g.
3.
Escriba todas las cuentas cuyos intérpretes de comandos (última columna) sean /sbin/nologin.
4.
Escriba todas las cuentas con UID o GID (tercera y cuarta columnas) 0.
5.
Escriba todas las cuentas con UID o GID en el rango de 10 a 19.
RH135-6-es-2-20110131
55
Capítulo 4. Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
Canalizaciones y redirección Las canalizaciones y la redirección de E/S son dos de las funciones más poderosas de la línea de comando en Linux. La redirección de E/S le permite redireccionar la salida estándar o los mensajes de error desde un programa a un archivo, guardarlos o analizarlos más tarde o eliminarlos para que no aparezcan en la terminal. También puede leer la entrada de un archivo, en lugar del teclado, a un programa de la línea de comando. Las tuberías le permite conectar los mensajes de salida estándar de un programa a la entrada de otro programa. Esto permite que múltiples programas más pequeños se encadenen en una canalización, cada programa actúa en la salida del anterior. Nombre
Descripción
Número
Valor predeterminado
STDIN
Entrada estándar
0
Teclado
STDOUT
Salida estándar
1
Terminal
STDERR
Error estándar
2
Terminal
Tabla 4.2. Canales Palabra clave
Definición
Ejemplos
>
Redirigir STDOUT a un archivo (sobrescribir)
date > /tmp/file date > /tmp/file grep '/sbin/nologin$' /etc/passwd > /tmp/file2 cat file1 file2 file3 file4 > /tmp/file
>>
Redirigir STDOUT a un archivo (agregar)
2>
Redirigir STDERR a un archivo (sobrescribir)
2> /dev/null
Descartar resultados al redirigir a /dev/ null
2>&1
Combinar STDERR con STDOUT
<
Redirigir STDIN
|
Canalizar o enviar STDOUT
56
date >> /tmp/file date > /tmp/file ls >> /tmp/file find /etc -name passwd >> /tmp/file find /etc -name passwd 2> /tmp/errors find /etc -name passwd > /tmp/output 2> /tmp/errors
find /etc -name passwd 2> /dev/null find /etc -name passwd > /tmp/output 2> /dev/null
find /etc -name passwd > /tmp/all 2>&1 find /etc -name passwd 2>&1 | less
grep 'root' < /etc/passwd ls /usr/lib64 | grep '^lib' grep '/sbin/nologin$' /etc/passwd | lpr
RH135-6-es-2-20110131
Canalizaciones y redirección
Palabra clave
Definición
Ejemplos
de un comando a STDIN de otro comando
sort /etc/passwd | mail -s “Sorted Accounts”
[email protected] ls /usr/lib64 | less
Tabla 4.3. Operadores de redirección
Importante 2>&1 redirige el error estándar al mismo lugar que la salida estándar. Si redirige un error estándar en la misma línea de comando, 2>&1 debe estar al final: [user@host ~]$ find / -user student > output 2>&1
Advertencia Los comandos program > file o program 2> file anularán el contenido de file si file ya existe. Sea muy cuidadoso al usar la redirección del error o la salida.
Referencias Páginas del manual: bash(1), cat(1), sort(1), grep(1), lpr(1), less(1), mail(1), find(1)
RH135-6-es-2-20110131
57
Capítulo 4. Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
Práctica Cuestionario
Canalizaciones y redirección Cree comandos que cumplan con los requisitos indicados a continuación 1.
Enumere todos los archivos en /usr/share/doc que finalicen con el número cuatro.
2.
Escriba todas las líneas en /etc/hosts que tengan un número.
3.
Escriba la línea en /etc/hosts que tenga 127.0.0.1.
4.
Ejecute el siguiente comando como student y redirija STDOUT a /tmp/output.txt y STDERR a /tmp/ error.txt. find /etc -name 'host*'
5.
Ejecute el siguiente comando como student y redirija STDOUT y STDERR al archivo /tmp/all.txt. find /etc -name 'host*'
6.
58
Ordene el archivo /etc/passwd y envíelo a la impresora predeterminada.
RH135-6-es-2-20110131
Canalizaciones y redirección
7.
Escriba las líneas en /etc/passwd que tengan un número de tres dígitos entre los dos puntos (:).
RH135-6-es-2-20110131
59
Capítulo 4. Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
Prueba
Prueba de criterios Ejercicio
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O) Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
Inicie sesión en serverX como student.
2.
Escriba todas las líneas en /etc/hosts que no comiencen con una marca "hash" (#). [SUGERENCIA: Busque Invertir en la página del manual grep(1)]. Redireccione los resultados a /tmp/hosts.
3.
Agregue los resultados de date y hostname al archivo /tmp/hosts.
4.
Edite /tmp/hosts con gedit o vim y cambie 127.0.0.1 a 127.0.0.2. Comente los resultados de date y hostname al agregar una marca "hash" (#) al comienzo de la línea.
5.
Use la página del manual lpr(1), escriba las líneas que contengan la palabra file seguida de ninguna o más "s". Redirija los resultados al archivo /tmp/lpr.man.
60
RH135-6-es-2-20110131
Canalizaciones y redirección
Notas personales
RH135-6-es-2-20110131
61
Capítulo 4. Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
Resumen de la unidad Expresiones regulares básicas En esta sección, aprendió a: • Identificar la sintaxis de expresiones regulares básicas mediante el uso de literales, modificadores, comodines y anclajes . Uso de grep En esta sección, aprendió a: • Use las herramientas de la línea de comando para buscar en los archivos y resultados . Canalizaciones y redirección En esta sección, aprendió a: • Redirigir los resultados de comando • Usar canalizaciones para administrar los resultados .
62
RH135-6-es-2-20110131
UNIDAD CINCO
CONFIGURACIÓN DE RED Y SOLUCIÓN DE PROBLEMAS Introducción Temas tratados en esta unidad: • Archivos de configuración de red • Proceso de solución de problemas básico • Kit de herramientas para la solución de problemas de red
RH135-6-es-2-20110131
63
Capítulo 5. Configuración de red y solución de problemas
Comprensión de los archivos de configuración de red Nombres de interfaz de red El kernel Linux nombra a las interfaces con un prefijo específico según el tipo de interfaz. Por ejemplo, todas las interfaces Ethernet comienzan con eth, independientemente del proveedor de hardware específico. Después del prefijo, cada interfaz está numerada, comenzando desde cero. Por ejemplo, eth0, eth1 y eth2 harían referencia a la primera, segunda y tercera interfaz Ethernet. Entre otros nombres de interfaz se incluyen wlan0 para el primer dispositivo inalámbrico, virbr0 para el puente interno configurado para hosts virtuales y bond0 para el primer dispositivo de red unido, y así sucesivamente.
Configuración de interfaz de red /sbin/ip se usa para mostrar o modificar temporalmente los dispositivos, el enrutamiento, el enrutamiento por política y los túneles. [root@demo ~]# ip addr show eth0 2: eth0:
mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:00:00:fa brd ff:ff:ff:ff:ff:ff inet 192.168.0.250/24 brd 192.168.0.255 scope global eth0 inet6 fe80::5054:ff:fe00:fa/64 scope link valid_lft forever preferred_lft forever [root@demo ~]# ip -s link show eth0 2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:00:00:fa brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 91449 520 0 0 0 0 TX: bytes packets errors dropped carrier collsns 14020 99 0 0 0 0 [root@demo ~]# ip route 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.250 metric 1 default via 192.168.0.254 dev eth0 proto static
nota ip -6 route muestra la tabla de enrutamiento de IPv6.
Resolución de nombres de host El comando hostname muestra o modifica temporalmente el nombre de host completo del sistema. [root@demo ~]# hostname demo.example.com
El identificador stub se usa para convertir nombres de host a direcciones IP, o al revés. Primero, se verifica el contenido del archivo /etc/hosts.
64
RH135-6-es-2-20110131
Resolución de nombres de host
[root@demo ~]# cat /etc/hosts 192.168.0.250 demo.example.com 127.0.0.1 localhost.localdomain ::1 demo.example.com
demo # Added by NetworkManager localhost demo localhost6.localdomain6 localhost6
Si no se encuentra una entrada en ese archivo, el identificador stub buscará la información en un servidor de nombres DNS. El archivo /etc/resolv.conf controla cómo se realiza esta consulta: • nameserver: dirección IP de un servidor de nombres para la consulta. Pueden otorgarse hasta tres directivas de servidor de nombres como respaldo si una no funciona. • search: lista de nombres de dominio para el intento con un nombre de host corto. Tanto este como domain no deben establecerse en el mismo archivo; si esto ocurre, prevalecerá la última instancia. Consulte resolv.conf(5) para obtener más detalles. [root@demo ~]# cat /etc/resolv.conf # Generated by NetworkManager domain example.com search example.com nameserver 192.168.0.254
El comando getent hosts hostname puede usarse para probar la resolución de nombres de host.
RH135-6-es-2-20110131
65
Capítulo 5. Configuración de red y solución de problemas
Modificación de la configuración de red NetworkManager puede instalarse en Red Hat Enterprise Linux 6. Consiste en un demonio básico, una miniaplicación del área de notificaciones de GNOME que brinda información sobre el estado de la red, y herramientas de configuración gráfica que pueden crear, editar y quitar conexiones e interfaces. Para que la interfaz eth0 administrada por NetworkManager pase de usar DHCP a usar una dirección IP estática: 1.
Haga clic con el botón secundario del ratón en el icono de NetworkManager en el panel superior y seleccione Edit connections...
2.
En la pestaña Wired, seleccione System eth0 y haga clic en el botón Edit...
3.
Seleccione la pestaña IPv4 Settings.
4. En el menú desplegable Method, cambie Automatic (DHCP) a Manual. 5.
En Addresses, haga clic en Add y escriba la dirección IPv4, la máscara de red (en notación VLSN o CIDR), el enrutador de puerta de enlace y el servidor DNS que se usarán.
6. IMPORTANTE: asegúrese de que la opción Connect automatically esté activada para que la interfaz se inicie durante el proceso de arranque (en lugar de hacerlo cuando el usuario inicia sesión) y que la opción Available to all users también esté activada para que se encuentre disponible en todo el sistema. 7.
Haga clic en Apply para aplicar los cambios.
También se puede configurar la red editando los archivos de configuración de interfaz. Los archivos de configuración de interfaz controlan las interfaces de software para dispositivos de red individuales. Estos archivos por lo general reciben el nombre /etc/sysconfig/networkscripts/ifcfg-, donde hace referencia al nombre del dispositivo que controla el archivo de configuración. A continuación, se muestran las variables estándares encontradas en el archivo que se usa para la configuración estática o dinámica. Estática
DHCP
Cualquiera
BOOTPROTO=static
BOOTPROTO=dhcp
DEVICE=eth0
IPADDR=192.168.0.250
ONBOOT=yes
PREFIX=24
HWADDR=52:54:00:00:00:FA
GATEWAY=192.168.0.254
NM_CONTROLLED=yes
DNS1=192.168.0.254 Tabla 5.1. Opciones de configuración para el archivo ifcfg
66
RH135-6-es-2-20110131
Modificación de la configuración de red
nota Si NetworkManager se está ejecutando, todos los cambios hechos en los archivos ifcfg-* se implementan inmediatamente.
nota Si necesita configurar rutas estáticas, la configuración se guarda por interfaz en /etc/ sysconfig/network-scripts/route-. Puede encontrar los detalles en el Manual de implementación de Red Hat Enterprise Linux, consulte a continuación.
Importante NetworkManager se ejecuta de manera predeterminada en Red Hat Enterprise Linux 6, y es posible que ocasione conflictos con la configuración de su red. Si desea administrar de manera permanente la configuración de la red de forma manual, agregue NM_CONTROLLED=no al archivo ifcfg-* para cada interfaz de red.
/etc/sysconfig/network se usa para especificar el nombre de host completo y puede especificar una ruta estática predeterminada si no se usa DHCP: [root@demo ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=demo.example.com GATEWAY=192.168.0.254
Como vimos anteriormente, /etc/resolv.conf especifica las direcciones IP de los servidores DNS y el dominio de búsqueda.
Importante Si se usa DHCP, /etc/resolv.conf se vuelve a escribir automáticamente a medida que las interfaces se inician, a menos que usted especifique PEERDNS=no en los archivos de configuración de interfaz relevantes.
Las interfaces de red pueden desactivarse con el comando ifdown eth0 y activarse con el comando ifup eth0, ya sea si están administradas por NetworkManager o por archivos de configuración no administrados. Al cambiar la configuración del sistema, recuerde:
RH135-6-es-2-20110131
67
Capítulo 5. Configuración de red y solución de problemas
1.
Modificar un archivo de configuración
2.
Reiniciar un servicio
3.
Verificar el cambio
Referencias Red Hat Enterprise Linux Deployment Guide • Sección 4.1: Archivos de configuración de red Red Hat Enterprise Linux Deployment Guide • Sección 4.2: Archivos de configuración de interfaz Red Hat Enterprise Linux Deployment Guide • Sección 4.4: Configuración de rutas estáticas Red Hat Enterprise Linux Deployment Guide • Capítulo 5: Configuración de la red /usr/share/doc/initscripts-*/sysconfig.txt
68
RH135-6-es-2-20110131
Modificación de la configuración de red
Práctica Cuestionario
Visualización y modificación de la configuración de red 1.
Complete la tabla a continuación con comandos, utilidades y nombres de archivo. Categoría de configuración
Ver configuración actual
Cambiar configuración
Dirección IP y máscara de subred
Enrutamiento/Puerta de enlace predeterminada
Nombre de host del sistema
Resolución de nombres
Tabla 5.2. Configuración de red desde la línea de comando
2.
¿Qué contiene un ifcfg-eth0 dinámico?
3.
¿Qué contiene un ifcfg-eth0 estático?
RH135-6-es-2-20110131
69
Capítulo 5. Configuración de red y solución de problemas
Proceso de solución de problemas básico Pasos para la solución de problemas 1.
PROBAR • Reproducir, verificar o caracterizar el problema • Monitorear el problema • Recopilar información general (versión de software o hardware, etc.) • Recopilar información de diagnóstico (archivos de registro, mensajes de errores, etc.) • Determinar el nivel de gravedad
2.
VERIFICAR • Revisar la configuración para ver si hay un error de configuración • Comparar la configuración prevista con la configuración deseada • Verificar el correcto funcionamiento y la correspondiente conexión del hardware local y de los recursos externos
3.
REPARAR • Modificar y activar la configuración • Verificar al volver a ejecutar la fase PROBAR para asegurarse de que el problema haya sido resuelto
4. DOCUMENTAR • El paso final de ajuste general que debe ejecutarse
70
RH135-6-es-2-20110131
Modificación de la configuración de red
Práctica Ejercicio
Documentar la configuración de red Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Antes de dividir la configuración de red, documentemos la configuración actual en el sistema de serverX. 1.
Inicie sesión en serverX como usuario root.
2.
a.
¿Cuál es la dirección IP actual?
b.
¿Cuál es la máscara de subred CIDR actual?
c.
¿Cuál es la puerta de enlace predeterminada actual?
d.
¿Cuál es el nombre de host actual?
e.
¿Cuáles son los servidores DNS actuales?
RH135-6-es-2-20110131
71
Capítulo 5. Configuración de red y solución de problemas
Kit de herramientas para la solución de problemas de red La tabla que se encuentra a continuación muestra cómo PROBAR, VERIFICAR y REPARAR cada una de las categorías de solución de problemas de red: Categoría
PROBAR
VERIFICAR
REPARAR
Dirección IP y máscara de subred
Enrutamiento/ Puerta de enlace predeterminada
ping, acceso a un servicio
ip addr
/etc/sysconfig/ network-scripts/ ifcfg-*
traceroute
ip route
/etc/sysconfig/ network-scripts/ ifcfg-* o proporcionado vía DHCP
host
/etc/hosts y / etc/resolv.conf
/etc/sysconfig/ network-scripts/ ifcfg-*
Resolución de nombres
Tabla 5.3. Solución de problemas de red desde la línea de comando
Archivos y comandos útiles • ping [root@demo ~]# ping -c 2 instructor.example.com PING instructor.example.com (192.168.0.254) 56(84) bytes of data. 64 bytes from instructor.example.com (192.168.0.254): icmp_seq=1 ttl=64 time=0.697 ms 64 bytes from instructor.example.com (192.168.0.254): icmp_seq=2 ttl=64 time=0.538 ms --- instructor.example.com ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 1003ms rtt min/avg/max/mdev = 0.538/0.617/0.697/0.083 ms
• ip addr show eth0 [root@demo ~]# ip addr show eth0
72
RH135-6-es-2-20110131
Kit de herramientas para la solución de problemas de red
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:00:00:fa brd ff:ff:ff:ff:ff:ff inet 192.168.0.250/24 brd 192.168.0.255 scope global eth0 inet6 fe80::5054:ff:fe00:fa/64 scope link valid_lft forever preferred_lft forever
• /etc/sysconfig/network-scripts/ifcfg- [root@demo ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" BOOTPROTO="dhcp" HWADDR="52:54:00:00:00:FA" NM_CONTROLLED="yes" ONBOOT="yes"
• traceroute [root@demo ~]# traceroute -Tn www.redhat.com traceroute to www.redhat.com (184.85.80.112), 30 hops max, 60 byte packets 1 192.168.0.254 0.641 ms 0.606 ms 0.590 ms 2 172.31.35.1 9.829 ms 9.531 ms 9.237 ms 3 204.60.4.40 27.954 ms 27.726 ms 27.385 ms 4 66.159.184.226 27.128 ms 49.156 ms 48.291 ms 5 151.164.92.147 43.256 ms 42.995 ms 42.155 ms 6 12.122.81.57 60.897 ms 60.041 ms 54.531 ms 7 75.149.230.169 54.143 ms 75.149.231.45 46.412 ms 192.205.37.34 40.208 ms 8 68.86.86.45 67.587 ms 54.599 ms 53.381 ms 9 68.86.86.234 65.540 ms 62.189 ms 53.777 ms 10 68.86.87.166 57.084 ms 55.752 ms 57.154 ms 11 184.85.80.112 55.707 ms 58.702 ms 57.996 ms
• ip route [root@demo ~]# ip route 192.168.0.0/24 dev eth0 proto kernel scope link default via 192.168.0.254 dev eth0 proto static
src 192.168.0.250
metric 1
• host [root@demo ~]# host i i.example.com is an alias for instructor.example.com. instructor.example.com has address 192.168.0.254
• dig [root@demo ~]# dig i.example.com ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 <<>> i.example.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17644 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;i.example.com.
RH135-6-es-2-20110131
IN
A
73
Capítulo 5. Configuración de red y solución de problemas
;; ANSWER SECTION: i.example.com. 86400 instructor.example.com. 86400
IN IN
CNAME A
instructor.example.com. 192.168.0.254
;; AUTHORITY SECTION: example.com.
IN
NS
instructor.example.com.
;; ;; ;; ;;
86400
Query time: 2 msec SERVER: 192.168.0.254#53(192.168.0.254) WHEN: Mon Dec 13 15:50:21 2010 MSG SIZE rcvd: 86
• /etc/hosts [root@demo ~]# cat /etc/hosts 192.168.0.250 demo.example.com demo # Added by NetworkManager 127.0.0.1 localhost.localdomain localhost ::1 demo.example.com demo localhost6.localdomain6 localhost6
• /etc/resolv.conf [root@demo ~]# cat /etc/resolv.conf # Generated by NetworkManager domain example.com search example.com nameserver 192.168.0.254
Referencias Red Hat Enterprise Linux Deployment Guide • Capítulo 4: Interfaces de red Red Hat Enterprise Linux Deployment Guide • Capítulo 5: Configuración de la red
74
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Ejercicio
Solución de problemas de configuración de red desde la línea de comando Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Las siguientes acciones deben ejecutarse en el servidor virtual, serverX. Comenzará por ejecutar un script que "dividirá" la configuración de red. Tendrá diez minutos para solucionar cada uno de los tres problemas. Asegúrese de documentar lo que encuentre, ya que al final realizaremos una revisión. 1.
Ejecute el primer script para generar un error de configuración en la red: lab-break-net 1
2.
Síntoma: un navegador web no puede acceder a la página web en http:// instructor.remote.test.
3.
Realice los tres pasos: PROBAR, VERIFICAR y REPARAR para identificar y solucionar el problema.
4.
Documente lo que encuentre. Use este espacio para sus notas.
5.
Ejecute el segundo script para generar un error de configuración en la red: lab-break-net 2
6.
Síntoma: un navegador web no puede acceder a la página web en http:// instructor.remote.test.
7.
Realice los tres pasos: PROBAR, VERIFICAR y REPARAR para identificar y solucionar el problema.
8.
Documente lo que encuentre.
RH135-6-es-2-20110131
75
Capítulo 5. Configuración de red y solución de problemas
Use este espacio para sus notas.
9.
Ejecute el tercer script para generar un error de configuración en la red: lab-break-net 3
10. Síntoma: Un navegador web no puede acceder a la página web en http:// instructor.remote.test. 11.
Realice los tres pasos: PROBAR, VERIFICAR y REPARAR para identificar y solucionar el problema.
12. Documente lo que encuentre. Use este espacio para sus notas.
76
RH135-6-es-2-20110131
Prueba de criterios
Notas personales
RH135-6-es-2-20110131
77
Capítulo 5. Configuración de red y solución de problemas
Resumen de la unidad Comprensión de los archivos de configuración de red En esta sección, aprendió a: • Cambiar la configuración de la red con herramientas de la línea de comando • Aplicar cambios en la configuración de la red de forma persistente editando archivos . Proceso de solución de problemas básico En esta sección, aprendió a: • Emplear un método sistemático para solucionar los problemas del sistema . Kit de herramientas para la solución de problemas de red En esta sección, aprendió a: • Diagnosticar y corregir los problemas de red para restaurar el acceso a la red .
78
RH135-6-es-2-20110131
UNIDAD SEIS
ADMINISTRACIÓN DE PARTICIONES SIMPLES Y SISTEMAS DE ARCHIVOS Introducción Temas tratados en esta unidad: • Adición de espacio en el sistema de archivos • Encriptación de particiones • Adición de espacio de intercambio
RH135-6-es-2-20110131
79
Capítulo 6. Administración de particiones simples y sistemas de archivos
Particiones simples y sistemas de archivos El almacenamiento es una necesidad básica de todo sistema informático. Red Hat Enterprise Linux incluye herramientas eficaces para administrar diversos tipos de dispositivos de almacenamiento en una amplia variedad de situaciones. fdisk es una utilidad para administrar particiones de disco. Puede ver los discos y sus particiones si ejecuta la utilidad con la opción -l y el nombre del disco (fdisk -cul / dev/vda). Puede realizar cambios si ejecuta la utilidad interactivamente y selecciona las opciones de menú correspondientes (fdisk -cu /dev/vda). -c deshabilita el modo heredado de compatibilidad con DOS y -u muestra los resultados en sectores (no cilindros, que son obsoletos).
Importante Red Hat Enterprise Linux 6 alinea automáticamente la primera partición para comenzar en el sector 2048, en lugar del sector 63 (el inicio "tradicional" del cilindro 1). Esto garantiza el funcionamiento máximo en los nuevos discos duros de sector de 4 KB y también en los discos duros de sector de 512 bytes heredados; además, es compatible con el comportamiento de otros sistemas operativos recientes que usan el esquema de partición MBR. En error de alineación en la partición puede generar una deficiencia importante en el funcionamiento; por lo tanto, tenga cuidado cuando adapte estos parámetros de configuración.
Para el servidor virtual, serverX, verifique la configuración actual de almacenamiento. Busque información en los resultados del siguiente comando: fdisk -cul /dev/vda. Disco principal: 1.
Nombre: /dev/vda
2.
Tamaño: 6442 MB
3.
Total de sectores: 12582912
4. Último sector usado: 9914367 [root@serverX ~]# fdisk -cul Disk /dev/vda
: 6442 MB
, 6442450944 bytes
16 heads, 63 sectors/track, 12483 cylinders, total 12582912 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000a9b12 Device Boot /dev/vda1 * /dev/vda2
80
Start 2048
End 526335
Blocks 262144
Id 83
System Linux
526336
9914367
4694016
8e
Linux LVM
RH135-6-es-2-20110131
Crear una nueva partición
Nombre del disco Tamaño total del disco Total de sectores Último sector usado
Crear una nueva partición [root@serverX ~]# fdisk -cu /dev/vda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First sector (9914368-12582911, default 9914368): Enter Using default value 9914368 Last sector, +sectors or +size{K,M,G} (9914368-12582911, default 12582911): +1G Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. [root@serverX ~]# reboot
Comparación de sistemas de archivos • ext4 es el sistema de archivos estándar para &RHEL 6. Es muy sólido y confiable, y presenta características para mejorar el funcionamiento en relación con las cargas de trabajo modernas. • ext2 es un sistema de archivos anterior, comúnmente usado en Linux; es simple y confiable, y funciona adecuadamente para dispositivos de almacenamiento pequeños, pero no es tan eficaz como ext4. • El soporte de vfat comprende una familia de sistemas de archivos relacionados (VFAT/FAT16, FAT32) desarrollados para versiones anteriores de Microsoft Windows y compatibles con una amplia variedad de sistemas y dispositivos.
Creación y uso de un nuevo sistema de archivos 1.
mkfs -t filesystem /dev/partition crea el tipo de sistema de archivos solicitado.
2.
blkid muestra información sobre el contenido de los dispositivos de bloques (particiones y volúmenes lógicos), incluido el UUID del sistema de archivos.
3.
mkdir /mountpoint crea un directorio al que enlazará el nuevo sistema de archivos.
4. Agregue una entrada a /etc/fstab mediante el uso del UUID obtenido del comando blkid:
RH135-6-es-2-20110131
81
Capítulo 6. Administración de particiones simples y sistemas de archivos
UUID=uuid
5.
/mountpoint
ext4
defaults
1 2
Monte el sistema de archivos nuevo con mount /mountpoint.
Advertencia Cuando agregue sistemas de archivos nuevos a /etc/fstab, debería usar blkid para determinar su UUID y montarlos por UUID. No debe montar sistemas de archivos en particiones simples con un nombre de dispositivo estándar (por ejemplo, /dev/sda3). Los nombres de dispositivos de disco pueden cambiar según los dispositivos que están visibles durante el proceso de arranque, que puede provocar que el sistema intente montar un sistema de archivos que no corresponda para un fin que no sea el adecuado y, que en el peor de los casos, pueda provocar la pérdida de datos. Este aspecto tiene una importancia especial cuando se involucra a dispositivos SAN (iSCSI y Fiber Channel) que pueden ser detectados por el sistema en un orden diferente, desde un arranque a otro, según el tráfico de SAN, pero puede plantear una dificultad cuando se usan medios extraíbles, como dispositivos USB. Cabe destacar que Red Hat Enterprise Linux 6 utiliza UUID en lugar de LABEL en /etc/ fstab para reducir la probabilidad de colisiones de nombres. El instalador ya no usa e2label para configurar etiquetas en sistemas de archivos de Red Hat Enterprise Linux 6 de forma predeterminada.
Ejemplo de la creación de un sistema de archivos [root@serverX ~]# mkfs -t ext4 /dev/vda3 [root@serverX ~]# blkid /dev/vda3 /dev/vda3: UUID="a11fadb0-2f5b-49e8-ba43-13de7990d3b9" TYPE="ext4" [root@serverX ~]# mkdir /test
Agregue una entrada a /etc/fstab: UUID="a11fadb0-2f5b-49e8-ba43-13de7990d3b9"
/test
ext4
defaults
1 2
Pruebe el montaje: [root@serverX ~]# mount /test
Eliminar un sistema de archivos existente 1.
Desmontar el sistema de archivos mediante umount /mountpoint.
2.
Quite la entrada correspondiente en /etc/fstab.
3.
Quite el directorio de punto de montaje: rmdir /mountpoint.
82
RH135-6-es-2-20110131
Ejemplo de la creación de un sistema de archivos
Referencias Páginas del manual fdisk(8), fstab(5), mkfs(8), blkid(8), mount(8) Base de conocimiento: "¿Cómo puedo crear una partición de disco en un disco que tiene una capacidad mayor que 2 TB?" https://access.redhat.com/kb/docs/DOC-4282
RH135-6-es-2-20110131
83
Capítulo 6. Administración de particiones simples y sistemas de archivos
Práctica Cuestionario
Agregar un nuevo sistema de archivos Complete los espacios en blanco con el comando que cumple con la tarea detallada. 1.
Identificar un disco que tenga espacio libre:
2.
Crear una nueva partición en ese disco:
3.
Actualizar la tabla de particiones del kernel:
4.
Crear un sistema de archivos en la partición
5.
Determinar el UUID del sistema de archivos
6.
Crear un punto de montaje:
7.
Agregar una entrada al archivo de tabla del sistema de archivos
8.
Montar el sistema de archivos
84
RH135-6-es-2-20110131
Habilitación de la privacidad de datos con encriptación de particiones
Habilitación de la privacidad de datos con encriptación de particiones LUKS ("Configuración de Clave Unificada de Linux") es un formato estándar para la encriptación de dispositivos. LUKS encripta la partición o el volumen; se debe desencriptar el volumen para que se pueda montar el sistema de archivos en el volumen.
Crear un nuevo volumen encriptado 1.
Cree una nueva partición con fdisk.
2.
cryptsetup luksFormat /dev/vdaN encripta la nueva partición y configura la contraseña de desencriptación
3.
cryptsetup luksOpen /dev/vdaNname desbloquea el volumen encriptado /dev/vdaN como /dev/mapper/name después de que usted ingrese la contraseña de desencriptación correcta
4. Cree un sistema de archivos ext4 en el volumen desencriptado: mkfs -t ext4 /dev/ mapper/name 5.
Cree el punto de montaje del directorio y monte el sistema de archivos: mkdir /secret ; mount /dev/mapper/name /secret.
6. Una vez que finalice, seleccione umount /dev/mapper/name y ejecute cryptsetup luksClose name para bloquear el volumen encriptado.
nota Al crear una partición encriptada, es mejor escribir datos aleatorios en el dispositivo sin formato antes de usar LUKS para inicializar el volumen. Esto puede resultar útil para hacer que el ataque a la encriptación del disco sea más difícil. El copiado los datos de /dev/ urandom al archivo del dispositivo para la partición logrará esto, pero puede llevar mucho tiempo.
Montar particiones encriptadas de forma persistente 1.
/etc/crypttab contiene una lista de dispositivos que se desbloquearán durante el inicio del sistema. name
/dev/vdaN
/path/to/password/file
/etc/crypttab indica un dispositivo por línea, con los siguientes campos separados por espacios: Nombre que el asignador de dispositivos usará para el dispositivo. Dispositivo subyacente "bloqueado".
RH135-6-es-2-20110131
85
Capítulo 6. Administración de particiones simples y sistemas de archivos
Archivo de contraseña que se usará para desbloquear el dispositivo. Si no se completa este campo (ni se establece en none), se pedirá al usuario que ingrese la contraseña de desencriptación durante el inicio. 2.
Cree una entrada como la siguiente en /etc/fstab: /dev/mapper/name
/secret
ext4
defaults
1 2
Advertencia El dispositivo indicado en el primer campo de /etc/fstab debe coincidir con el nombre elegido para el nombre local para la asignación en /etc/crypttab. Este es un error de configuración común.
3.
Cree el archivo de llave que incluya la contraseña. Asegúrese de que sea propiedad del usuario root y que el modo sea 600. Agregue la llave para LUKS con el siguiente comando: [root@serverX ~]# cryptsetup luksAddKey /dev/vdaN /path/to/password/file
Ejemplo de creación de un sistema de archivos encriptado Cree una nueva partición, como hizo anteriormente. Asumiremos que el dispositivo es /dev/ vda5. [root@serverX ~]# cryptsetup luksFormat /dev/vda5 WARNING! ======== This will overwrite data on /dev/vda5 irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: testing123 Verify passphrase: testing123 [root@serverX ~]# cryptsetup luksOpen /dev/vda5 encdisk Enter passphrase for /dev/vda5: testing123 [root@serverX ~]# mkfs -t ext4 /dev/mapper/encdisk [root@serverX ~]# mkdir /encdisk [root@serverX ~]# mount /dev/mapper/encdisk /encdisk
Para que este disco sea persistente, comience por anexar lo siguiente a /etc/fstab: /dev/mapper/encdisk
/encdisk
ext4
defaults
1 2
Cree /etc/crypttab y agregue la siguiente línea. Esta acción le pedirá la contraseña cada vez que arranque la máquina: encdisk
86
/dev/vda5
RH135-6-es-2-20110131
Ingreso automático de la contraseña de encriptación
Ingreso automático de la contraseña de encriptación Si desea un arranque automatizado, debe incluir la contraseña en un archivo de texto (que tenga implicaciones de seguridad obvias). /etc/crypttab: encdisk
/dev/vda5 /root/encdisk
[root@serverX ~]# echo -n "testing123" > /root/encdisk [root@serverX ~]# chown root /root/encdisk [root@serverX ~]# chmod 600 /root/encdisk [root@serverX ~]# cryptsetup luksAddKey /dev/vda5 /root/encdisk Enter any passphrase: testing123
Referencias Red Hat Enterprise Linux Security Guide • Sección 3.8: Encriptación del disco LUKS Páginas del manual: cryptsetup(8), crypttab(5)
RH135-6-es-2-20110131
87
Capítulo 6. Administración de particiones simples y sistemas de archivos
Práctica Ejercicio para ordenar
Crear un sistema de archivos encriptado Para cada uno de los nombres de archivo o directorio indicados a continuación, escriba el número de la definición correspondiente indicado en la lista debajo. Crear una nueva partición Crear un sistema de archivos ext4 Formatear la nueva partición para la encriptación Montar el sistema de archivos en el dispositivo desbloqueado Crear una entrada en /etc/fstab Crear un directorio para usarlo como punto de montaje Desbloquear la partición encriptada Crear una entrada en /etc/crypttab Permitir que LUKS reconozca el archivo de contraseña
1.
fdisk
2.
cryptsetup luksFormat /dev/vdaN
3.
cryptsetup luksOpen /dev/vdaNsecret
4. mkfs -t ext4 /dev/mapper/secret 5.
mkdir /secret
6. mount /dev/mapper/secret /secret 7.
secret /dev/vdaN/password/file
8. /dev/mapper/secret /secret ext4 defaults 1 2 9.
88
cryptsetup luksAddKey /dev/vdaN/password/file
RH135-6-es-2-20110131
Administración de espacio de intercambio
Administración de espacio de intercambio El espacio de intercambio, o área de intercambio, es espacio en la unidad de disco duro que se usa como desbordamiento para partes de la memoria que actualmente no están siendo usadas. Esto permite que el sistema haga lugar en la memoria principal para los datos que están siendo procesados actualmente y proporciona desbordamiento de emergencia si el sistema está en riesgo de quedarse sin espacio en la memoria principal.
Creación y uso de una partición de intercambio adicional 1.
Cree una nueva partición con fdisk. Además, cambie el tipo de partición a "0x82 Linux Swap" antes de guardar los cambios con fdisk.
2.
mkswap /dev/vdaN preparará la partición para su uso como área de intercambio.
3.
blkid /dev/vdaN determinará el UUID.
4. Agregue un nuevo espacio de intercambio a /etc/fstab: UUID=uuid
5.
swap
swap
defaults 0 0
swapon -a activará la nueva área de intercambio. swapon -s mostrará el estado de las áreas de intercambio actuales. swapoff /dev/vdaN desactivará esa área de intercambio en particular.
Ejemplo de creación de un espacio de intercambio Cree una nueva partición y cambie el tipo a 82: [root@serverX ~]# fdisk /dev/vda Command (m for help): n First sector (12539904-12582911, default 12539904): Enter Using default value 12539904 Last sector, +sectors or +size{K,M,G} (12539904-12582911, default 12582911): Using default value 12582911
Enter
Command (m for help): t Partition number (1-6): 6 Hex code (type L to list codes): 82 Changed system type of partition 6 to 82 (Linux swap / Solaris) Command (m for help): w [root@serverX ~]# reboot
Escriba la firma de intercambio para el dispositivo y busque el UUID: [root@serverX ~]# mkswap /dev/vda6 [root@serverX ~]# blkid /dev/vda6 /dev/vda6: UUID="4903c440-ffcb-4404-bc09-505c79c7a412" TYPE="swap"
Agregue una entrada a /etc/fstab:
RH135-6-es-2-20110131
89
Capítulo 6. Administración de particiones simples y sistemas de archivos
UUID="4903c440-ffcb-4404-bc09-505c79c7a412"
swap
swap
defaults
0 0
Active el espacio de intercambio, verifique que esté disponible y, a continuación, desactive el espacio de intercambio: [root@serverX ~]# swapon -a swapon -s /dev/dm-0 /dev/vda6 [root@serverX ~]# swapoff /dev/vda6
partition partition
557048 21496
0 0
-1 -2
El establecimiento del tamaño total del espacio de intercambio debe basarse, concretamente, en la carga de trabajo de la memoria en el sistema, y no en la cantidad total de memoria física presente. No obstante, la siguiente tabla proporciona algunas reglas generales de miniatura para el establecimiento del tamaño del espacio de intercambio. Para obtener una orientación más detallada sobre el establecimiento del tamaño del espacio de intercambio, consulte el artículo de la base de conocimiento que está en las referencias. Memoria RAM del sistema
Espacio de intercambio mínimo recomendado
Hasta 4 GB
2 GB como mínimo
De 4 GB a 16 GB
4 GB como mínimo
De 16 GB a 64 GB
8 GB como mínimo
De 64 GB a 256 GB
16 GB como mínimo
Tabla 6.1. Orientación básica sobre el establecimiento del tamaño del espacio de intercambio
Referencias Red Hat Enterprise Linux Storage Administration Guide • Capítulo 14: Espacio de intercambio Base de conocimiento: "Si agrego varios cientos de GB de memoria RAM a un sistema, ¿realmente necesito varios cientos de GB de espacio de intercambio?" https://access.redhat.com/kb/docs/DOC-15252 Páginas del manual: mkswap(8), swapon(8)
90
RH135-6-es-2-20110131
Administración de espacio de intercambio
Práctica Ejercicio
Crear y usar una nueva partición de intercambio Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
Inicie fdisk y cree una nueva partición de 256 MB. Cambie el tipo de partición a swap.
Importante Para tener espacio para crear particiones adicionales en el futuro, si es necesario, asegúrese de crear una partición extendida previamente.
2.
Prepare la nueva partición para usarla como intercambio:
3.
Determine el UUID.
4.
Agregue la nueva partición a /etc/fstab.
5.
Determine la cantidad actual de intercambio.
6.
Active el nuevo intercambio.
7.
Verifique el intercambio recientemente activado.
RH135-6-es-2-20110131
91
Capítulo 6. Administración de particiones simples y sistemas de archivos
Prueba
Prueba de criterios Caso de estudio
Administración de particiones simples y sistemas de archivos Antes de comenzar... Ejecute lab-setup-storage en desktopX para preparar serverX para el ejercicio. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. Su departamento desea usar una parte del espacio de almacenamiento sin asignar en los servidores. Cree adiciones en el sistema según la siguiente lista: • Cree una nueva partición y un sistema de archivos ext4 con un tamaño de 400 MB. El sistema de archivos se debe montar de manera persistente bajo /data. • Agregue de manera persistente una partición de intercambio que tenga un tamaño de 200 MB. • Cree un dispositivo encriptado con un sistema de archivos ext4 que tenga un tamaño de 256 MB y use la contraseña testing123. El sistema de archivos debe solicitar la contraseña en el arranque y montar el sistema de archivos en /test. Cuando esté listo para revisar su trabajo, ejecute lab-grade-storage en serverX.
Importante Para tener espacio para crear particiones adicionales en el futuro, si es necesario, asegúrese de crear una partición extendida previamente.
¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
92
RH135-6-es-2-20110131
Administración de espacio de intercambio
Notas personales
RH135-6-es-2-20110131
93
Capítulo 6. Administración de particiones simples y sistemas de archivos
Resumen de la unidad Particiones simples y sistemas de archivos En esta sección, aprendió a: • Crear y formatear una partición simple para el almacenamiento de datos . Habilitación de la privacidad de datos con encriptación de particiones En esta sección, aprendió a: • Habilitar la privacidad de datos con una partición encriptada desde la línea de comando . Administración de espacio de intercambio En esta sección, aprendió a: • Crear y formatear una partición simple para intercambio. .
94
RH135-6-es-2-20110131
UNIDAD SIETE
ADMINISTRACIÓN DE ALMACENAMIENTO FLEXIBLE CON EL ADMINISTRADOR DE VOLÚMENES LÓGICOS Introducción Temas tratados en esta unidad: • Revisar componentes del LVM • Implementar almacenamiento del LVM • Crear un sistema de archivos • Agregar un disco • Instantánea como copia de seguridad
RH135-6-es-2-20110131
95
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Reconocer los componentes del LVM Unused Space
4.
3.
2.
1.
Revisar definiciones de LVM • Las particiones físicas o discos constituyen el primer bloque de creación del LVM. Pueden ser particiones, discos enteros, conjuntos RAID o discos SAN. • Los volúmenes físicos constituyen el almacenamiento "físico" subyacente que se usa con el LVM. Comúnmente, esto es un dispositivo de bloque como una partición o un disco entero. Un dispositivo debe inicializarse como volumen físico de LVM para su uso con el LVM. • Los grupos de volúmenes son bloques de almacenamiento conformados por uno o más volúmenes físicos. • Las extensiones físicas son pequeños fragmentos de datos almacenados en volúmenes físicos que actúan como el back-end del almacenamiento de LVM. • Las extensiones lógicas se asignan a las extensiones físicas para formar el front-end del almacenamiento de LVM. De forma predeterminada, cada extensión lógica se asignará a una
96
RH135-6-es-2-20110131
¿Por qué se deben usar volúmenes lógicos?
extensión física. La habilitación de algunas opciones cambiará esta asignación. Por ejemplo, la creación de reflejo hará que cada extensión lógica se asigne a dos extensiones físicas. • Los volúmenes lógicos son grupos de extensiones lógicas. Un volumen lógico se puede usar del mismo modo que una partición de la unidad de disco duro.
¿Por qué se deben usar volúmenes lógicos? Los volúmenes lógicos, y la administración de volúmenes lógicos, facilitan la administración del espacio del disco. Si un sistema de archivos necesita más espacio, se puede asignar a su volumen lógico del espacio libre en su grupo de volúmenes y se puede cambiar el tamaño del sistema de archivos. Si un disco comienza a fallar, se puede registrar un disco de reemplazo como volumen físico con el grupo de volúmenes y las extensiones del volumen lógico se pueden migrar al disco nuevo.
Referencias Red Hat Enterprise Linux Logical Volume Manager Administration Guide
RH135-6-es-2-20110131
97
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Práctica Cuestionario
Componentes de LVM 1.
Complete el siguiente cuadro con los nombres de los componentes.
Unused Space
4.
3.
2.
1.
2.
¿Cuáles son las partes más pequeñas (fragmentos o bloques) del volumen físico?
3.
¿Cuál es el tamaño más pequeño que podría tener un volumen lógico?
98
RH135-6-es-2-20110131
¿Por qué se deben usar volúmenes lógicos?
4.
¿Qué hace referencia a las extensiones físicas de un volumen lógico?
RH135-6-es-2-20110131
99
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Implementar el almacenamiento de LVM con herramientas de la línea de comando Preparar un volumen físico 1.
Se utiliza fdisk para crear una nueva partición para su uso con el LVM. Siempre establezca el tipo en 0x8e Linux LVM en una partición que se usará con el LVM.
nota De forma alternativa, puede usar un disco entero, una matriz RAID o un disco SAN.
2.
Para inicializar la partición (u otro dispositivo físico) para su uso con el LVM como volumen físico, se usa pvcreate /dev/vdaN. Se crea un encabezado directamente en el volumen físico para almacenar los datos de configuración de LVM.
Creación de un grupo de volúmenes 1.
vgcreate vgname /dev/vdaN creará un grupo de volúmenes con el nombre vgname conformado por el volumen físico /dev/vdaN. Puede especificar volúmenes físicos delimitados por espacios adicionales en el momento de la creación o agregar nuevos volúmenes físicos posteriormente con vgextend.
Crear y usar un nuevo volumen lógico 1.
lvcreate -n lvname -L 2G vgname crea un nuevo volumen lógico de 2 GB con el nombre lvname de las extensiones físicas disponibles en vgname.
Importante Diferentes herramientas mostrarán el nombre del volumen lógico, ya sea mediante el uso del nombre tradicional, /dev/vgname/lvname, o el nombre del asignador de dispositivos del kernel, /dev/mapper/vgname-lvname.
2.
mkfs -t ext4 /dev/vgname/lvname creará un sistema de archivos ext4 en el nuevo volumen lógico.
3.
mkdir /data hace que sea necesario el directorio como punto de montaje.
4. Agregue una entrada al archivo /etc/fstab: /dev/mapper/vgname-lvname
5.
100
/data
ext4
defaults 1 2
Ejecute mount -a para montar todos los sistemas de archivos en /etc/fstab, incluida la entrada que agregó recientemente.
RH135-6-es-2-20110131
Implementar el almacenamiento de LVM con herramientas de la línea de comando
Revisar la información de estado de LVM 1.
pvdisplay /dev/vdaN mostrará la información acerca del volumen físico específico.
2.
vgdisplay vgname mostrará la información acerca del grupo de volúmenes específico. Ejemplo de resultados de vgdisplay: --- Volume group --VG Name vg1 System ID Format lvm2 Metadata Areas 10 Metadata Sequence No 18 VG Access read/write VG Status resizable MAX LV 0 Cur LV 6 Open LV 6 Max PV 0 Cur PV 5 Act PV 5 VG Size
7.28 TB
PE Size
4.00 MB
Total PE
1907727
Alloc PE / Size
1720587 / 6.56 TB
Free PE / Size VG UUID
187140 / 731.02 GB 7FmScA-HJWa-
Nombre del grupo de volúmenes Tamaño total del almacenamiento "físico" en el grupo de volúmenes Tamaño de la extensión física Total de extensiones físicas en el grupo de volúmenes Total de extensiones físicas usadas por los volúmenes lógicos Extensiones físicas disponibles 3.
lvdisplay /dev/vgname/lvname mostrará la información acerca del volumen lógico específico.
Referencias Red Hat Enterprise Linux Logical Volume Manager Administration Guide Página del manual: lvm(8)
RH135-6-es-2-20110131
101
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Práctica Ejercicio
Implementar el LVM y crear un volumen lógico Antes de comenzar... Asegúrese de ejecutar lab-setup-lvm desde su sistema desktopX, que preparará su sistema serverX para el ejercicio práctico. Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Todos estos pasos se llevarán a cabo en serverX. 1.
Cree una nueva partición de 512 MB y prepárela para su uso con el LVM como volumen físico.
Importante Para tener espacio para crear particiones adicionales en el futuro, si es necesario, asegúrese de crear una partición extendida previamente.
2.
Cree un grupo de volúmenes con el nombre shazam mediante el uso del volumen físico creado en el paso anterior.
3.
Cree y formatee con ext4 un nuevo volumen lógico de 256 MB con el nombre /dev/ shazam/storage.
4.
Modifique el sistema de modo que /dev/shazam/storage se monte durante el proceso de arranque como /storage.
102
RH135-6-es-2-20110131
Extender un volumen lógico y su sistema de archivos Ext4
Extender un volumen lógico y su sistema de archivos Ext4 Uno de los beneficios de los volúmenes lógicos es la capacidad para aumentar su tamaño sin experimentar tiempo de inactividad. Las extensiones físicas libres en un grupo de volúmenes se pueden agregar a un volumen lógico para “extender” su capacidad, que luego se puede usar para extender el sistema de archivos que contiene.
Pasos básicos para la creación de un volumen lógico 1.
Verificar el espacio disponible en el
2.
Extender el
3.
Extender el
Extensión del volumen lógico y el sistema de archivos 1.
Verifique el tamaño actual del sistema de archivos montado /data: # df -h /data
2.
Verifique que haya suficientes "extensiones físicas disponibles" para su usa: # vgdisplay vgname
Consulte la salida de ejemplo en la sección “Revisar información de estado del LVM” que se encuentra más atrás en esta unidad para observar cómo identificar extensiones físicas libres disponibles. 3.
Extienda el volumen lógico usando algunas o todas las extensiones disponibles: # lvextend -l 128 /dev/vgname/lvname
4. Cree un sistema de archivos asociado montado en /data: # resize2fs -p /dev/vgname/lvname
La opción -p muestra el progreso durante la operación.
RH135-6-es-2-20110131
103
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
nota El sistema de archivos puede permanecer montado y ser utilizado mientras resize2fs se ejecuta.
Importante Un error común es ejecutar lvextend y olvidarse de ejecutar resize2fs.
5.
Verifique el tamaño nuevo del sistema de archivos montado /data: # df -h /data
Reducción de un sistema de archivos y volumen lógico Este proceso es similar a la extensión, pero al revés: resize2fs y después lvreduce.
Advertencia Es esencial tener una copia de seguridad confiable antes de reducir el volumen lógico, ya que los errores tipográficos en la línea de comando pueden ocasionar la pérdida de datos.
1.
Si bien la extensión de un volumen lógico se puede hacer mientras el sistema de archivos está en uso, la reducción de un sistema de archivos ext4 se debe hacer sin conexión Se debe usar umount /data para desmontar el sistema de archivos que desea reducir.
2.
fsck -f /dev/mapper/vgname-lvname para verificar que todas las estructuras de datos del sistema de archivos estén limpias antes de cambiar el tamaño
3.
resize2fs -p /dev/mapper/vgname-lvname512M cambiará el tamaño del sistema de archivos a 512 MB, suponiendo que el volumen lógico es de más de 512 MB. Nota: si omite el tamaño del comando resize2fs, cambiará al tamaño del volumen lógico de forma predeterminada, lo cual está bien para extender el volumen lógico como se hizo anteriormente.
4. lvreduce -L 512M /dev/mapper/vgname-lvname reducirá el volumen lógico a 512 MB.
104
RH135-6-es-2-20110131
Extender un volumen lógico y su sistema de archivos Ext4
Advertencia lvreduce no tiene ningún conocimiento de las estructuras de datos del sistema de archivos y, sin proporcionarle ninguna advertencia, descartará los elementos de su sistema de archivos si usted no usa primero resize2fs para reducir el tamaño del sistema de archivos para que sea inferior al tamaño del volumen lógico deseado.
5.
mount -a volverá a montar todos los sistemas de archivos enumerados en /etc/fstab, incluido su volumen lógico ahora más pequeño que asume que está enumerado en
Referencias Red Hat Enterprise Linux Logical Volume Manager Administration Guide Página del manual: lvm(8)
RH135-6-es-2-20110131
105
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Práctica Ejercicio
Extender un volumen lógico Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Todos estos pasos se llevarán a cabo en serverX. 1.
Determine la cantidad de espacio libre en el grupo de volúmenes shazam.
2.
Extienda el volumen lógico /dev/shazam/storage con la mitad de las extensiones disponibles en el grupo de volúmenes usando las herramientas de la línea de comando.
3.
Extienda el sistema de archivos montado en /storage con las herramientas de la línea de comando.
106
RH135-6-es-2-20110131
Extensión y reducción de un grupo de volúmenes
Extensión y reducción de un grupo de volúmenes Si los volúmenes lógicos de un grupo de volúmenes usan todas las extensiones físicas libres del grupo, no podrán extenderse si no se agrega más espacio al grupo de volúmenes. Afortunadamente, se pueden crear volúmenes físicos adicionales y agregarlos a un grupo de volúmenes para “extender” su capacidad. Otro beneficio de usar LVM es que los datos se pueden transferir entre los dispositivos de almacenamiento físico sin que el usuario deba experimentar tiempo de inactividad. Por ejemplo, los datos pueden transferirse de una unidad de disco más lenta a otra unidad nueva y más rápida. Esto permite que el administrador de sistemas quite de un grupo de volúmenes el dispositivo de almacenamiento físico que no está en uso (en este caso, la unidad de disco lenta).
Extensión de un grupo de volúmenes 1.
Al igual que en la creación de un nuevo grupo de volúmenes, se debe crear y preparar una nueva partición para usar como volumen físico de LVM. Use fdisk para crear una nueva partición y recuerde establecer el tipo en 0x8e Linux LVM. Use pvcreate /dev/vdaN para inicializar la partición para su uso con el LVM como volumen físico.
2.
Se usa vgextend vgname /dev/vdaN para agregar un nuevo volumen físico, /dev/vdaN, a un grupo de volúmenes existente, vgname .
3.
Use vgdisplay para confirmar "extensiones físicas disponibles" adicionales.
Reducción de un grupo de volúmenes 1.
Se usa pvmove /dev/vdaN para reubicar cualquier extensión física que se usa en / dev/vdaN en otros volúmenes físicos en el grupo de volúmenes. Esto sólo es posible si hay suficientes extensiones disponibles en el grupo de volúmenes y si todas corresponden a otros volúmenes físicos.
Advertencia Antes de usar pvmove, se recomienda realizar una copia de seguridad de los datos en los volúmenes lógicos del grupo de volúmenes. Una pérdida de energía imprevista durante la operación puede hacer que el grupo de volúmenes quede en un estado incoherente.
2.
Se usa vgreduce vgname /dev/vdaN para quitar el volumen físico /dev/vdaN del grupo de volúmenes vgname.
RH135-6-es-2-20110131
107
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Referencias Red Hat Enterprise Linux Logical Volume Manager Administration Guide Páginas del manual: lvm(8), pvmove(8), vgreduce(8)
108
RH135-6-es-2-20110131
Extensión y reducción de un grupo de volúmenes
Práctica Ejercicio
Extender un grupo de volúmenes Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Todos estos pasos se llevarán a cabo en serverX. 1.
Cree una nueva partición de 512 MB y prepárela para su uso con el LVM como volumen físico.
Importante Para tener espacio para crear particiones adicionales en el futuro, si es necesario, asegúrese de crear una partición extendida previamente.
2.
Extienda el grupo de volúmenes shazam al agregar el volumen físico creado en el paso anterior.
RH135-6-es-2-20110131
109
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Crear una instantánea para facilitar la copia de seguridad de datos Las instantáneas de volúmenes lógicos son otra característica flexible del almacenamiento de LVM. Una instantánea de LVM es un volumen lógico que conserva de forma temporal los datos originales de un volumen lógico cambiante. La instantánea permite obtener una vista estática del volumen original para que pueda realizarse una copia de seguridad de sus datos en un estado coherente.
Determinar el tamaño de instantánea 1. 2.
Frecuencia de
prevista de instantánea requerido
La instantánea de volumen sólo debe ser lo suficientemente grande para almacenar los datos que cambiarán mientras esta exista. Si se producen más modificaciones de datos de las que puede retener la instantánea, esta pasará a ser inutilizable automáticamente. (El volumen original no se verá afectado, pero la instantánea inutilizable deberá desmontarse y quitarse del grupo de volúmenes manualmente).
Creación y uso de una instantánea para copia de seguridad 1.
Cree una nueva instantánea de volumen con el nombre snaplvname de /dev/vgname/ lvname, que tenga un tamaño de 20 MB. # lvcreate -s -n snaplv -L 20M /dev/vgname/lvname
2.
Si el software de copia de seguridad lo requiere, monte la instantánea y apunte el programa de copia de seguridad al nuevo punto de montaje: # mkdir /snapmount # mount -o ro /dev/vgname/snaplv /snapmount
3.
Verifique el estado de la instantánea de volumen lógico: # lvs /dev/vgname/snaplv LV VG Attr LSize Origin Snap% Move Log Copy% snaplv vgname swi-a- 224.00m origlv 0.26
Convert
4. Una vez que finalice la instantánea, desmóntela y quítela: # umount /snapmount # lvremove /dev/vgname/snaplv
110
RH135-6-es-2-20110131
Extensión y reducción de un grupo de volúmenes
Referencias Red Hat Enterprise Linux Logical Volume Manager Administration Guide Página del manual: lvm(8)
RH135-6-es-2-20110131
111
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Práctica Ejercicio
Creación de una instantánea de LVM Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Compare el contenido del volumen lógico existente, /dev/shazam/storage, con una nueva instantánea de volumen, /dev/shazam/storagesnap, mientras realiza cambios en el volumen original. Todos estos pasos se llevarán a cabo en serverX. 1.
Copie el archivo /usr/share/dict/linux.words en /storage para tener algunos datos para la comparación.
2.
Cree una nueva instantánea de volumen lógico de 20 MB de /dev/shazam/storage con el nombre storagesnap.
3.
Monte /dev/shazam/storagesnap manualmente, con acceso de sólo lectura, en / storagesnap.
4.
Enumere el contenido de /storagesnap y tenga en cuenta que es igual a /storage.
5.
Elimine el archivo /storage/linux.words y tenga en cuenta que aún existe en / storagesnap.
6.
Limpie: desmonte /storagesnap, quite el directorio y elimine el volumen lógico storagesnap.
112
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Caso de estudio
Caso de estudio de LVM Antes de comenzar... Ejecute lab-setup-lvm en desktopX para preparar serverX para el ejercicio. Allison necesita almacenar datos para su negocio. Su base de datos de clientes actual es de 256 MB. La información en la base de datos cambia alrededor de 10 MB por hora en un día normal. El software de copia de seguridad tarda 10 minutos para realizar una ejecución completa. Cree un nuevo grupo de volúmenes con el nombre allison con suficiente espacio para un volumen de 512 MB y una instantánea de ese volumen para el software de copia de seguridad. Una vez creado el grupo de volúmenes, cree dentro de este un volumen lógico de 512 MB para la base de datos de clientes de Allison denominada custdb. También cree una instantánea de volumen de la base de datos de clientes de Allison con el nombre custdbsnap para su software de copia de seguridad. Cuando esté listo para revisar su trabajo, ejecute lab-grade-lvm en serverX. ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
RH135-6-es-2-20110131
113
Capítulo 7. Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Notas personales
114
RH135-6-es-2-20110131
Prueba de criterios
Resumen de la unidad Reconocer los componentes del LVM En esta sección, aprendió a: • Identificar los bloques de creación básicos del administrador de volúmenes lógicos . Implementar el almacenamiento de LVM con herramientas de la línea de comando En esta sección, aprendió a: • Crear nuevos volúmenes físicos, grupos de volúmenes y volúmenes lógicos con las herramientas de la línea de comando • Revisar la información de estado de LVM . Extender un volumen lógico y su sistema de archivos Ext4 En esta sección, aprendió a: • Extender un volumen lógico y el sistema de archivos correspondiente para satisfacer las crecientes necesidades de almacenar datos . Extensión y reducción de un grupo de volúmenes En esta sección, aprendió a: • Agregar nuevos volúmenes físicos a un grupo de volúmenes existente • Quitar un volumen físico existente de un grupo de volúmenes . Crear una instantánea para facilitar la copia de seguridad de datos En esta sección, aprendió a: • Usar instantáneas temporales de LVM para facilitar las copias de seguridad de datos y minimizar el tiempo de inactividad del servicio .
RH135-6-es-2-20110131
115
116
UNIDAD OCHO
ACCESO A LOS SERVICIOS PARA INTERCAMBIO DE ARCHIVOS DE RED Introducción Temas tratados en esta unidad: • Montar recursos compartidos de red • Automontar recursos compartidos de red
RH135-6-es-2-20110131
117
Capítulo 8. Acceso a los servicios para intercambio de archivos de red
Montar sistemas de archivos de red Un sistema de archivos de red es un sistema que, en lugar de ser proporcionado por un dispositivo de bloques como un disco duro, es proporcionado por un servidor de almacenamiento unido a una red a múltiples hosts a través de una red. Los clientes acceden al almacenamiento remoto a través de un formato y protocolo de sistemas de archivos especiales. Existen dos protocolos primarios que se utilizan en Linux para acceder a sistemas de archivos de red: NFS y CIFS. NFS, del inglés Network File System (sistema de archivos de red), actúa como un sistema de archivos estándar para Linux, UNIX y sistemas operativos similares. CIFS, del inglés Common Internet File System (sistema de archivos de Internet comunes), es el sistema de archivos de red estándar para los sistemas de Microsoft Windows. Ya sea que el sistema de archivos compartido que desee usar esté basado en NFS o en CIFS, se aplican los mismos tres pasos básicos si desea montarlo y acceder a este en un sistema Linux.
Tres pasos básicos para acceder a un recurso compartido de red 1.
Identificar el recurso compartido remoto al que se desea acceder.
2.
Determinar el punto de montaje donde debe montarse, y crear el directorio vacío del punto de montaje.
3.
Montar el sistema de archivos de red mediante un comando o cambio de configuración correspondiente.
NFS: Sistema de archivos de red NFS, Network File System, es un protocolo estándar de Internet usado por Linux, UNIX y sistemas operativos similares, como su sistema de archivos de red nativo. Es una extensión abierta y activa bajo un estándar que admite características nativas de sistemas de archivos y permisos de Linux. Red Hat Enterprise Linux 6 admite NFSv4 (versión 4 del protocolo) de forma predeterminada, y, si no está disponible, busca hacia atrás automáticamente a NFSv3 y NFSv2. Para que todas las versiones de NFS trabajen en el cliente, se deben habilitar dos servicios: rpcbind y nfslock. NFSv4 utiliza el protocolo TCP para comunicarse con el servidor, mientras las versiones anteriores de NFS pueden usar TCP o UDP. Existen dos formas de identificar las exportaciones de NFS, o recursos compartidos de archivos, proporcionados por un servidor. Si el servidor admite NFSv3 o NFSv2, se puede usar el comando showmount -e server para obtener una lista de exportaciones. Si el servidor admite NFSv4, puede montar la exportación / en un directorio vacío y explorar el contenido de todos los sistemas de archivos exportados.
Comandos para acceder a una exportación de NFS 1.
Identificar: showmount -e nfsserver.domain
2.
118
Determinar el punto de montaje:
RH135-6-es-2-20110131
CIFS: Sistema de archivos de Internet comunes
mkdir /remote1
3.
Montar: mount nfsserver.domain:/exported/path /remote1
nota Para identificar recursos compartidos para NFSv4, intente montar la exportación / y explorar, o continúe usando showmount -e si el servidor también admite NFSv3 o NFSv2. [root@host ~]# mkdir /allremote1 [root@host ~]# mount nfsserver.domain:/ /allremote1 [root@host ~]# ls /allremote1
Use este espacio para sus notas.
CIFS: Sistema de archivos de Internet comunes CIFS es el sistema de archivos de red nativo para los sistemas operativos de Microsoft Windows. Los sistemas Linux pueden montar recursos compartidos de archivos de CIFS, y acceder a estos, como sistemas de archivos de red normales. Sin embargo, dado que CIFS se monta en torno al modelo de permisos de sistemas de archivos NTFS y su propio sistema de autenticación, no todo en el protocolo CIFS se asigna bien respecto de cómo las mismas cosas se realizan en Linux. La utilidad smbclient, incluida con el paquete RPM de samba-client, se puede utilizar para identificar recursos compartidos de CIFS proporcionados por servidores de archivos de Windows Samba. Funciona de manera muy similar a cuando se hace clic en My Network Places en Microsoft Windows. Luego el comando mount se puede utilizar para montar el recurso compartido.
Comandos para acceder a un recurso compartido de CIFS 1.
Identificar: smbclient -L cifsserver.domain
2.
Determinar el punto de montaje: mkdir /remote2
RH135-6-es-2-20110131
119
Capítulo 8. Acceso a los servicios para intercambio de archivos de red
3.
Montar: mount //cifsserver.domain/sharename /remote2
nota El comando mount que se muestra arriba se autenticará en el recurso compartido de CIFS con el nombre del usuario actual. Si desea especificar un nombre de usuario de Windows diferente, use la opción -o username=user en la línea de comando mount.
Taller
Acceso a un recurso compartido de CIFS Sígalo junto con el instructor y use el espacio provisto a continuación para sus notas. En este taller, accederemos a un recurso compartido basado en CIFS en instructor.example.com. 1.
Identificar: [root@serverX ~]# smbclient -L cifsserver.domain Enter root's password: Anonymous login successful Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.4-68.el6] Sharename Type -----------ftp Disk IPC$ IPC Anonymous login successful Domain=[MYGROUP] OS=[Unix]
2.
Comment ------Instructor Public FTP IPC Service (Instructor Samba Server) Server=[Samba 3.5.4-68.el6]
Server --------INSTRUCTOR
Comment ------Instructor Samba Server
Workgroup --------MYGROUP
Master -------
Determinar el punto de montaje: [root@serverX ~]# mkdir /remote2
3.
Montar: [root@serverX ~]# mount -o username=guest2000+X //instructor.example.com/ftp /remote2 Password: password [root@serverX ~]# ls /remote2
120
RH135-6-es-2-20110131
CIFS: Sistema de archivos de Internet comunes
EXAMPLE-CA-CERT
example-ca.crt
gls
lost+found
materials
rhel6
solutions
Referencias Red Hat Enterprise Linux Storage Administration Guide • Sección 10.2: Configuración de cliente NFS Páginas del manual: nfs(5), mount(8), mount.nfs(8) y mount.cifs(8)
RH135-6-es-2-20110131
121
Capítulo 8. Acceso a los servicios para intercambio de archivos de red
Práctica Ejercicio
Acceso a un servidor de archivos de NFS Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Estos pasos deben ejecutarse en serverX. Después de verificar la disponibilidad de un recurso compartido de NFS, cree el punto de montaje necesario y monte el recurso compartido temporalmente. 1.
Verifique que /var/ftp/pub sea un recurso compartido de NFS disponible en el servidor instructor.example.com.
2.
Cree el directorio /server para usar como punto de montaje.
3.
Cree y ejecute un comando para montar el recurso compartido de NFS en el punto de montaje.
4.
Cree una lista del contenido del punto de montaje para verificar que sea el contenido del recurso compartido de NFS de instructor.example.com.
5.
Limpie mediante el desmontaje del recurso compartido.
122
RH135-6-es-2-20110131
Montar automáticamente un almacenamiento de red
Montar automáticamente un almacenamiento de red El uso del comando mount requiere privilegios root para la conexión con los recursos compartidos de red. Como alternativa, podríamos agregar entradas en /etc/fstab, pero en ese caso las conexiones con los servidores de red estarían activas todo el tiempo. El servicio automounter, o autofs, se puede configurar para montar recursos compartidos de red "bajo demanda", cuando un programa intenta acceder a un archivo en el recurso compartido de la red. El servicio automounter tendrá que desmontar el recurso compartido una vez que ya no se encuentre en uso, después de determinada cantidad de inactividad.
nota El intervalo de inactividad está establecido de forma predeterminada en cinco minutos, pero se puede cambiar globalmente en /etc/sysconfig/autofs. [root@host ~]# grep TIMEOUT /etc/sysconfig/autofs # TIMEOUT - set the default mount timeout (default 600). TIMEOUT=300 ...output omitted...
Normalmente, deseamos permitir que el recurso compartido de red permanezca montado durante un período corto de inactividad en caso de que se use otra vez brevemente. Esto evita ciclos de montaje/desmontaje innecesarios.
En esta sección, observaremos dos formas en las que se puede utilizar el programa de automontaje. En primer lugar, mediante el uso de un punto de montaje para el automontaje /net especial, y en segundo lugar, mediante la configuración manual de asignaciones de automontaje indirectas.
Asignación especial /net • De forma predeterminada, con el servicio autofs en ejecución, existirá un directorio especial denominado /net, pero parecerá estar vacío. • Al acceder al directorio /net/nfsserver.domain que no existe, el programa de automontaje creará ese subdirectorio y mostrará todas las exportaciones de NFS disponibles desde ese servidor NFS. A veces, esto se denomina "exploración" de los recursos compartidos: [user@host ~]$ cd /net/nfsserver.domain [user@host nfsserver.domain]$ ls exports
• Una vez que todos los archivos y directorios bajo /net/nfsserver.domain se dejen de usar y el tiempo de espera se agote, autofs desmonta los recursos compartidos y elimina el subdirectorio /net/nfsserver.domain vacío.
RH135-6-es-2-20110131
123
Capítulo 8. Acceso a los servicios para intercambio de archivos de red
Taller
Uso de /net Sígalo junto con el instructor y use el espacio provisto a continuación para sus notas. 1.
Identificar y registrar la ruta en /net necesaria para acceder a la exportación /var/ftp/ pub en el servidor instructor.example.com:
2.
Validar la ruta al usar cd para acceder a esta en su serverX. [student@serverX ~]$ cd /net/instructor.example.com/var/ftp/pub [student@serverX pub]$ ls EXAMPLE-CA-CERT example-ca.crt gls lost+found materials rhel6
solutions
Use este espacio para sus notas.
Asignaciones indirectas En lugar de usar la asignación /net, el administrador de sistemas también puede configurar manualmente un directorio arbitrario que monta recursos compartidos particulares en sus subdirectorios "a petición" cuando se accede a este. Una forma de hacer esto es usar el programa de automontaje con asignaciones indirectas. El directorio arbitrario que contiene los puntos de montaje administrados por el programa de automontaje se configurarán en el archivo de configuración /etc/auto.master. En el segundo archivo, se configurará qué subdirectorios se crearán como puntos de montaje en ese directorio y qué se montará en ellos. La ubicación de este segundo archivo también se especifica en el archivo /etc/auto.master en la entrada de directorio padre.
Ejemplo • Las asignaciones indirectas usan una sintaxis de archivos de configuración de dos niveles. El archivo del nivel superior, /etc/auto.master, presentará una línea para que cada directorio "padre" administre y el nombre de un archivo de configuración secundario que contiene el subdirectorio punto de montaje y recurso compartido de red. [root@host ~]# cat /etc/auto.master /demo /etc/auto.demo [root@host ~]# cat /etc/auto.demo public
124
-ro
nfsserver.domain:/exported/path
RH135-6-es-2-20110131
Asignaciones indirectas
Directorio primario del punto de montaje. Este directorio se encuentra visible en el sistema todo el tiempo y es controlado por el servicio autofs para determinar la "necesidad" de crear o montar el punto de montaje de subdirectorio. Archivo de configuración individual que contiene una lista de los puntos de montaje de subdirectorio administrados bajo este directorio primario por el servicio autofs. Punto de montaje de subdirectorio. Este directorio normalmente es invisible hasta que se le denomine/acceda a este directamente, después de lo cual el servicio autofs lo crea y monta el recurso compartido. Opciones de montaje que se pueden usar para montar el recurso compartido de red. Recurso compartido de red que se montará cuando se acceda al punto de montaje de subdirectorio. [user@host ~]$ cd /demo/public [user@host public]$
Punto de montaje que, del acceso correspondiente, se creará y montará en el recurso compartido de red definido. Al igual que en los ejemplos de /net anteriores, después de un período de inactividad, este punto de montaje se desmontará y eliminará.
nota Las asignaciones indirectas también admiten metacaracteres para usar comodines para el punto de montaje y las definiciones de recursos compartidos. Esto es útil cuando se automontan directorios de hogar de usuarios desde un servidor de archivos de red. Trataremos este tema en una unidad más adelante.
Use este espacio para sus notas.
Referencias Páginas del manual sobre configuración: auto.master(5), autofs(5) Páginas del manual sobre la operación de demonio: autofs(8), automount(8)
RH135-6-es-2-20110131
125
Capítulo 8. Acceso a los servicios para intercambio de archivos de red
Práctica Ejercicio
Automontar un recurso compartido de NFS con asignaciones indirectas Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Estos pasos deben ejecutarse en serverX. Ahora configurará el programa de automontaje para montar automáticamente una exportación de NFS en un directorio especificado a pedido.. • El servidor NFS es instructor.example.com. • La exportación de NFS en el servidor es /var/ftp/pub. • El punto de montaje automático en su estación debe ser /server/public. • Use una asignación indirecta (no /net) para implementar esto. • Confirme que el automontaje funcione al cambiar el directorio al punto de montaje y acceder a los archivos en el recurso compartido. Realice los siguientes pasos: 1.
Cree/modifique los archivos de configuración del servicio autofs.
2.
Vuelva a cargar el programa de automontaje.
3.
Acceda al recurso compartido.
126
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Caso de estudio
Automontaje de recursos compartidos de NFS Estos pasos deben ejecutarse en serverX. • Su compañía ha incorporado un nuevo cliente, Organization of Secret Hidden Undertakings (OSHU). • La compañía tiene un nuevo servidor NFS con recursos compartidos para almacenar archivos relacionados con clientes "especiales": instructor.example.com. • El recurso compartido para este cliente es: /var/nfs/oshu. • Configure su estación de trabajo de modo que autofs monte automáticamente ese recurso compartido como: /special/oshu. • Cree una lista del contenido de /special/oshu para asegurarse de que pueda ver los siguientes archivos: supertopsecret.txt ultrashh.txt ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
RH135-6-es-2-20110131
127
Capítulo 8. Acceso a los servicios para intercambio de archivos de red
Notas personales
128
RH135-6-es-2-20110131
Prueba de criterios
Resumen de la unidad Montar sistemas de archivos de red En esta sección, aprendió a: • Acceder manualmente a recursos compartidos de NFS y CIFS disponibles desde la línea de comando . Montar automáticamente un almacenamiento de red En esta sección, aprendió a: • Usar la asignación especial predeterminada autofs, /net, para acceder a un recurso compartido de NFS disponible • Configurar autofs usando asignaciones indirectas para un recurso compartido de NFS disponible .
RH135-6-es-2-20110131
129
130
UNIDAD NUEVE
ADMINISTRACIÓN DE LAS CUENTAS DE USUARIO Introducción Temas tratados en esta unidad: • Definición de usuarios • Administrar usuarios locales • Caducidad de las contraseñas
RH135-6-es-2-20110131
131
Capítulo 9. Administración de las cuentas de usuario
¿Qué es un usuario? Cada proceso (programa en ejecución) en el sistema se ejecuta como un usuario particular. Cada archivo es propiedad de un usuario particular. El acceso a los archivos y directorios está restringido por usuario. El usuario asociado con un proceso de ejecución determina los archivos y directorios accesibles para ese proceso. Para ver el usuario asociado con un proceso, incluya la opción u para el comando ps. La primera columna muestra el nombre de usuario: [root@serverX ~]# ps aux USER PID %CPU %MEM VSZ root 1 0.0 0.2 19232 root 2 0.0 0.0 0 gdm 1913 0.0 0.3 132372 student 29261 1.7 0.4 97588 student 29281 0.0 0.2 106008
RSS 1392 0 1972 2100 1240
TTY ? ? ? ? pts/0
STAT Ss S S S S
START Jan24 Jan24 Jan24 20:38 20:38
TIME 0:00 0:00 0:00 0:00 0:00
COMMAND /sbin/init [kthreadd] /usr/libexec/gv sshd: student@p /bin/sh /usr/bi
Para ver el usuario asociado con un archivo o directorio, use el comando ls -l. La tercera columna muestra el nombre de usuario: [root@serverX drwx------. 2 drwx------. 2 -rw-r--r--. 1
~]# ls -l /tmp gdm gdm 4096 Jan 24 13:05 orbit-gdm student student 4096 Jan 25 20:40 orbit-student root root 23574 Jan 24 13:05 postconf
Los usuarios de Linux están definidos en las bases de datos. De forma predeterminada, los sistemas usan un "archivo plano o sin formato", el archivo /etc/passwd, para almacenar información sobre los usuarios locales. El formato de /etc/passwd es el siguiente (siete campos separados por dos puntos):
username:
password:
UID:
GID:
GECOS:
/home/dir:
shell
Atributos del usuario: username es una asignación de ID de usuario (UID) a un nombre para beneficio de los usuarios particulares. password es donde se guardaban las contraseñas en formato encriptado, tradicionalmente. Actualmente, se guardan en un archivo aparte con el nombre /etc/shadow. UID es un ID de usuario, un número que identifica al usuario en el nivel más básico. GID es el ID de grupo principal; de forma predeterminada, un número relacionado con todos los archivos recientemente creados, potencialmente para colaboración. El campo GECOS almacena texto arbitrario, normalmente el nombre real, el número de oficina o el número de teléfono del usuario. /home/dir es la ubicación donde se encuentran los datos personales del usuario y los archivos de configuración. shell es el programa que se ejecuta cuando el usuario inicia sesión, y si es un intérprete de comandos, como /bin/bash, proporciona las instrucciones de la línea de comando del usuario.
132
RH135-6-es-2-20110131
¿Qué es un usuario?
Referencias Red Hat Enterprise Linux Deployment Guide • Capítulo 15: Usuarios y grupos Página del manual: passwd(5)
RH135-6-es-2-20110131
133
Capítulo 9. Administración de las cuentas de usuario
Administración de usuarios locales Se puede usar una cantidad de herramientas de la línea de comando para administrar cuentas de grupo y de usuarios locales.
useradd crea usuarios. • useradd username establece valores predeterminados razonables para todos los campos en /etc/passwd cuando se ejecuta sin opciones. • useradd no establece ninguna contraseña válida de forma predeterminada; el usuario no puede iniciar sesión. • useradd --help mostrará las opciones básicas que se pueden usar para invalidar los valores predeterminados.
userdel elimina usuarios. • userdel username quita el usuario de /etc/passwd, pero de forma predeterminada, no altera el directorio hogar. • userdel -r username elimina el usuario y el directorio hogar del usuario
134
RH135-6-es-2-20110131
Administración de usuarios locales
Advertencia Cuando se elimina un usuario con userdel sin la opción -r especificada, el sistema tendrá archivos que pertenecen a un número de ID de usuario no asignado. Esto también puede suceder cuando los archivos creados por un usuario eliminado existe fuera de su directorio hogar. Esta situación se puede dar como resultado que se filtre información y otros problemas de seguridad. El comando useradd asigna a los nuevos usuarios el primer número UID libre (a menos que uno esté especificado explícitamente con la opción -u UID). Así es como puede ocurrir que se filtre información. Si el primer número UID libre ha sido asignado previamente a una cuenta de usuario que ha sido eliminada del sistema, al número UID del usuario anterior se reasignará al nuevo usuario y le dará al nuevo usuario la propiedad de los archivos restantes del usuario anterior. A continuación se demuestra esta situación: [root@serverX ~]# useradd prince [root@serverX ~]# ls -l /home drwx------. 4 prince prince 1024 [root@serverX ~]# userdel prince [root@serverX ~]# ls -l /home drwx------. 4 500 500 1024 [root@serverX ~]# useradd bob [root@serverX ~]# ls -l /home drwx------. 4 bob bob 1024 drwx------. 4 bob bob 1024
Dec 23 12:30 prince
Dec 23 12:30 prince
Dec 23 12:31 bob Dec 23 12:30 prince
Observe que bob posee todos los archivos que, en otra ocasión, pertenecían a prince. La mejor solución a este problema es eliminar todos los archivos "que no pertenecen a nadie" del sistema cuando se elimina al usuario que los creó.
id muestra la información del usuario. • id mostrará la información del usuario, incluido el número UID del usuario y las membresías a grupos. • id usernamemostrará la información de username, incluido el número UID del usuario y las membresías a grupos.
passwd establece contraseñas. • passwd username se puede usar para establecer la contraseña inicial o cambiar la contraseña del usuario. Use este espacio para sus notas.
RH135-6-es-2-20110131
135
Capítulo 9. Administración de las cuentas de usuario
Rangos de UID • UID 0 es el usuario root y tiene privilegios especiales • UID 1-499 son los "usuarios del sistema" por convención; generalmente, cuentas de servicio no interactivas. • UID 500+ son "usuarios regulares" para que las personas lo use para acceder de forma interactiva a la máquina
Referencias Red Hat Enterprise Linux Deployment Guide • Sección 15.2: Herramientas de administración de usuarios y grupos Páginas del manual: useradd(8), usermod(8), userdel(8), groupadd(8), groupdel(8)
136
RH135-6-es-2-20110131
Administración de usuarios locales
Práctica Ejercicio
Crear usuarios mediante el uso de las herramientas de la línea de comando Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. Cree una serie de usuarios en el sistema serverX y establezca una contraseña inicial (registre en los espacios en blanco a continuación). 1.
Inicie sesión en serverX como usuario root.
2.
Agregue el usuario juliet.
3.
Confirme que juliet se haya agregado mediante el uso del comando id.
4.
Confirme que juliet se ha agregado al examinar el archivo /etc/passwd.
5.
Use el comando passwd para inicializar la contraseña de juliet y escriba la contraseña aquí: .
6.
Continúe agregando el resto de los usuarios de la lista abajo. Recuerde establecer una contraseña inicial y escribirla al lado de cada nombre de usuario: • faraday • jack • kate • james • walt • ben • claire • hugo • elvis
RH135-6-es-2-20110131
137
Capítulo 9. Administración de las cuentas de usuario
Administración de contraseñas Históricamente, las contraseñas se almacenaban en el archivo /etc/passwd. Sin embargo, / etc/passwd deben ser legibles mundialmente porque los comandos como ls deben acceder a ese archivo para asignar UID a los nombres de usuarios. Las contraseñas se migraron a un archivo /etc/shadow más seguro, que admite varios algoritmos de encriptación de contraseñas diferentes. Siempre que las contraseñas encriptadas se almacenen en un archivo dedicado, la política de vigencia de contraseñas y los datos también se podrán almacenar. ¿Qué tres datos se almacenan en el hash de una contraseña? $1$gCjLa2/Z$6Pu0EK0AzfCjxjv2hoLOB/ 1.
1: el algoritmo de hash (1 indica hash MD5).
2.
gCjLa2/Z: la sal utilizada para encriptar el hash.
3.
6Pu0EK0AzfCjxjv2hoLOB/: el hash encriptado.
nota Red Hat Enterprise Linux 6 admite dos nuevos algoritmos de hash de contraseñas sólidos, SHA-256 (algoritmo 5) y SHA-512 (algoritmo 6). Se pueden habilitar como valores predeterminados para /etc/shadow usando system-config-authentication para seleccionarlo del menú desplegable Password Hashing Algorithm en la pestaña Advanced Options.
Campos de /etc/shadow 1.
Nombre de usuario.
2.
Hash de contraseña.
3.
Fecha de última modificación de la contraseña (cantidad de días desde 1970.01.01).
4. Vigencia mínima de la contraseña (en días, 0 = no hay requisito de vigencia mínima). 5.
Vigencia máxima de la contraseña (en días).
6. Período de advertencia de la contraseña (en días, 0 = no se proporciona una advertencia). 7.
Período de inactividad de la contraseña (en días).
8. Caducidad de la cuenta (cantidad de días desde 1970.01.01).
138
RH135-6-es-2-20110131
Administración de contraseñas
En el siguiente diagrama, se indican los parámetros de vigencia de contraseñas relevantes que pueden ajustarse mediante el uso de chage para implementar una política de vigencia de contraseñas.
max days (
)
min days (-m)
warn days ( )
inactive days ( )
time last change date ( )
password inactive expiration date date Mientras el instructor explica estos parámetros, complete los paréntesis en el diagrama que se encuentra a continuación con los modificadores de la línea de comando chage (forma abreviada) relevantes. Como ejemplo, se agregó -m al parámetro Días mínimos para que comience su tarea. # chage -m 0 -M 90 -W 7 -I 14 username
chage -d 0 username forzará que se actualice la contraseña en el próximo inicio de sesión. chage -l username enumerará los valores de configuración actuales del nombre de usuario. usermod puede modificar una cuenta, incluso "bloquearla" con la opción -L.
Referencias Red Hat Enterprise Linux Deployment Guide • Sección 15.6: Contraseñas ocultas Páginas del manual: chage(8), usermod(5), shadow(3), crypt(1)
RH135-6-es-2-20110131
139
Capítulo 9. Administración de las cuentas de usuario
Práctica Cuestionario
Mantenimiento de cuentas 1.
¿Qué comando bloquearía la cuenta de elvis?
2.
¿Qué comando la desbloquearía?
3.
¿Qué comando haría que la cuenta de elvis caducara el 15 de marzo de 2012?
140
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Ejercicio
Administración de políticas de vigencia de contraseñas Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. El instructor los dividirá en grupos pequeños. En cada grupo, debatan qué políticas de vigencia de contraseñas serían apropiadas para los profesores (que usarán la máquina durante un tiempo prolongado), los estudiantes de posgrado (que usarán la máquina durante unos pocos años) y los practicantes de verano (que sólo usarán la máquina durante el verano). • Profesores: faraday, juliet • Estudiantes de posgrado: jack, kate, james • Practicantes de verano: walt, ben, claire, hugo Asigne una política de contraseña a cada grupo de usuarios en serverX. 1.
Determine una política de vigencia de contraseñas adecuada para cada grupo de usuarios (profesores, estudiantes de posgrado y practicantes de verano), que incluya: • Fecha de caducidad de la cuenta (si corresponde). • El tiempo antes de que se deban cambiar las contraseñas. • El límite de tiempo a partir del cual si no se cambia la contraseña, la cuenta quedará inactiva.
2.
Una vez determinado, use chage para implementar la política para los usuarios agregados en la sección anterior, según su función.
3.
Además, exija a los usuarios que cambien la contraseña al iniciar sesión por primera vez.
RH135-6-es-2-20110131
141
Capítulo 9. Administración de las cuentas de usuario
Notas personales
142
RH135-6-es-2-20110131
Prueba de criterios
Resumen de la unidad ¿Qué es un usuario? En esta sección, aprendió a: • Comprender qué es una cuenta de usuario en un sistema Linux • Identificar los campos del archivo /etc/passwd . Administración de usuarios locales En esta sección, aprendió a: • Agregar y quitar cuentas de usuarios desde la línea de comando • Establecer o cambiar las contraseñas de usuarios . Administración de contraseñas En esta sección, aprendió a: • Personalizar las políticas de vigencia de contraseñas para que los usuarios cumplan con los requisitos de seguridad de organización .
RH135-6-es-2-20110131
143
144
UNIDAD DIEZ
CUENTAS DE USUARIOS DE RED CON LDAP Introducción Temas tratados en esta unidad: • Configuración de cliente LDAP • Metacaracteres del programa de automontaje
RH135-6-es-2-20110131
145
Capítulo 10. Cuentas de usuarios de red con LDAP
Autenticación de red mediante el uso de un servidor LDAP Hasta el momento en esta clase, hemos observado cuentas de usuarios locales administradas a través de archivos locales (como /etc/passwd) en cada máquina. Sin embargo, es difícil coordinar cuentas de usuarios locales en muchos sistemas. En esta sección, analizaremos cómo configurar una máquina como cliente para usar cuentas de usuarios de red que son provistas por un servicio de directorios LDAP existente. Esto permite que el directorio LDAP sea la autoridad central para todos los grupos y usuarios de red en nuestra organización. La información de cuenta de usuario determina las características y la configuración de la cuenta. Los métodos de autenticación se usan para determinar si alguien que intenta iniciar sesión debe tener acceso a la cuenta. Los servicios de directorios de red pueden proporcionar información sobre la cuenta de usuario y métodos de autenticación. Los servidores de directorios de red se pueden usar como un servicio de administración de usuarios de red distribuido y centralizado. Las entradas de directorio están dispuestas en una estructura de árbol donde se pueden buscar. El DN (Nombre distinguido) de base es la base del árbol donde se realizarán las búsquedas de las entradas de directorio correspondientes a los usuarios y grupos.
Elementos principales para la configuración de cliente LDAP 1.
Nombre de host completo del servidor
2.
DN de base para buscar definiciones de usuarios
3.
Certificado de autoridades de certificación (CA) que se usa para firmar el certificado SSL del servidor LDAP
Use este espacio para sus notas.
Debe asegurarse de que el grupo de paquetes YUM directory-client esté instalado, que incluye los paquetes sssd, authconfig-gtk y oddjob-mkhomedir, antes de comenzar. Se puede usar System → Administration → Authentication o system-configauthentication para modificar la configuración de identidad y autenticación.
146
RH135-6-es-2-20110131
Autenticación de red mediante el uso de un servidor LDAP
system-config-authentication automáticamente activará el servicio sssd que buscará y copiará en caché la información de usuario LDAP y las credenciales de autenticación del cliente. Si el servidor LDAP no está disponible, pero sssd está funcionando, el sistema podrá autenticar y obtener información acerca de los usuarios de red de la caché de sssd. Use getent passwd username para verificar la información de cuenta que se está usando. Esto funciona independientemente de que el usuario sea un usuario local definido en /etc/ passwd o un usuario de red de un servicio LDAP. El comando siempre mostrará la definición que está usando el sistema actualmente si hay alguna duplicación entre usuarios locales y usuarios de red. De forma predeterminada, la definición de usuario local invalida la definición de usuario de red.
nota En Red Hat Enterprise Linux 6, getent passwd (sin especificar un nombre de usuario) sólo volcará los nombres de usuario local de forma predeterminada, no volcará la lista de todos los usuarios LDAP como en Red Hat Enterprise Linux 5. Esto es por motivos de rendimiento; consulte sssd.conf(5) en la opción enumerate para más detalles. (Este comportamiento se puede cambiar configurando enumerate = True en la sección [domain/default] de /etc/sssd/sssd.conf).
RH135-6-es-2-20110131
147
Capítulo 10. Cuentas de usuarios de red con LDAP
Importante Al usar LDAP password como su método de autenticación, debe seleccionar y configurar Use TLS to encrypt connections. Esto es para evitar que se envíen contraseñas no encriptadas al servidor LDAP por medio de la red para la autenticación. Este es un cambio de Red Hat Enterprise Linux 5, el cual habilitaría el uso no seguro de autenticación de contraseñas LDAP sin TLS. En RHEL 6, puede seguir utilizando LDAP sin TLS si está usando LDAP para obtener información de usuario únicamente. (Por ejemplo, puede utilizar Kerberos para la autenticación de contraseñas). Es recomendable utilizar siempre TLS.
Referencias Red Hat Enterprise Linux Deployment Guide • Capítulo 8: Configuración de autenticación Páginas del manual: system-config-authentication(8), sssd(8), sssd.conf(5)
148
RH135-6-es-2-20110131
Autenticación de red mediante el uso de un servidor LDAP
Práctica Cuestionario
Configuración de cliente LDAP 1.
¿Cuáles son los siete datos que generalmente proveen los servicios de información de cuenta de usuario?
2.
¿Qué "otro" tipo de información puede proveer un servicio de directorios de red?
3.
¿Cuáles son los tres datos que deben configurarse en una máquina cliente para obtener información de usuario de un servicio de directorios LDAP?
4.
¿Qué función ejecuta el comando getent passwd ldapuser1? ¿Por qué es útil?
RH135-6-es-2-20110131
149
Capítulo 10. Cuentas de usuarios de red con LDAP
Montaje en red de directorios hogar Recuerde que el montaje de recursos compartidos de red requiere cuatro datos: nombre del host, nombre del recurso compartido, punto de montaje y opciones de montaje. 1.
Use showmount -e nfsserver.domain para obtener la ruta exportada que al combinarla con el nombre de host nos proporciona el nombre de recurso compartido. [root@serverX ~]# showmount -e instructor.example.com Export list for instructor.example.com: /home/guests 192.168.0.0/255.255.255.0 /var/nfs 192.168.0.0/255.255.255.0 /kickstart 192.168.0.0/255.255.255.0 /var/ftp/pub 192.168.0.0/255.255.255.0
2.
Use getent passwd username para obtener el punto de montaje del directorio hogar necesario. [root@serverX ~]# getent passwd ldapuser1 ldapuser1:*:1701:1701:LDAP Test User 1:/home/guests/ldapuser1:/bin/bash
nota De forma predeterminada, getent passwd solo muestra las cuentas locales. Puede mostrar una cuenta única si agrega explícitamente el nombre (como se muestra arriba). Si desea mostrar todas las cuentas disponibles (incluidas las cuentas LDAP), agregue lo siguiente a /etc/sssd/sssd.conf debajo de la sección [domain/default]: enumerate = True
Reinicie el servicio sssd. [root@serverX ~]# service sssd restart [root@serverX ~]# getent passwd ... ldapuser10:*:1710:1710:LDAP Test User 10:/home/guests/ldapuser10:/bin/bash ldapuser11:*:1711:1711:LDAP Test User 11:/home/guests/ldapuser11:/bin/bash ...
3.
Al igual que los directorios hogar, probablemente queramos usar rw como opción de montaje.
La configuración de asignaciones indirectas en autofs se vería más o menos así: # cat /etc/auto.master /home/guests /etc/auto.guests # cat /etc/auto.guests ldapuser1 -rw instructor.example.com:/home/guests/ldapuser1 ldapuser2 -rw instructor.example.com:/home/guests/ldapuser2
150
RH135-6-es-2-20110131
Montaje en red de directorios hogar
ldapuser3 ldapuser4
-rw -rw
instructor.example.com:/home/guests/ldapuser3 instructor.example.com:/home/guests/ldapuser4
Cada vez que se crea un usuario LDAP nuevo, se deberá actualizar a /etc/auto.guests para incluir ese usuario adicional. Sin embargo, observe el "patrón" de las líneas. Deseamos permitir el inicio de sesión con cualquier nombre de usuario, de modo que podríamos reemplazar la primera columna por un "asterisco (*)", un comodín, para que coincida con cualquier nombre de subdirectorio al que el proceso de inicio de sesión intente hacer cd. Después, usamos el metacarácter "ampersand (&)" para reemplazar el nombre de usuario en el recurso compartido que lleva el nombre de asignación que coincide con el comodín: # cat /etc/auto.master /home/guests /etc/auto.guests # cat /etc/auto.guests * -rw instructor.example.com:/home/guests/&
Importante Al momento de escribir, existe un error en el script del índice de comandos autofs (bugzilla #624444) que hace que service autofs restart a veces falle. Hasta que esto se arregle, use service autofs reload o el service autofs stop && service autofs start.
Referencias Red Hat Enterprise Linux Storage Administration Guide • Sección 10.3: autofs Páginas del manual: autofs(5), auto.master(5)
RH135-6-es-2-20110131
151
Capítulo 10. Cuentas de usuarios de red con LDAP
Práctica Caso de estudio
Automontaje de directorios NFS Estos pasos deben ejecutarse en serverX. Actualmente, su empresa toma varios clientes nuevos: 1.
Organization of Secret Hidden Undertakings (OSHU)
2.
Race Along the Lake Investments, Inc. (RALII)
Su empresa tiene un nuevo servidor NFS para almacenar archivos relacionados con esos clientes "especiales" denominados instructor.example.com, con dos recursos compartidos: /var/ nfs/oshu y /var/nfs/ralii. La expectativa es que se agregarán más recursos compartidos a medida que se incorporen nuevos clientes. Las estaciones de trabajo deben usar autofs para montar automáticamente estos recursos compartidos en /special/oshu y /special/ralii, respectivamente, con permisos de sólo lectura. Dada la perspectiva de que nuevos clientes se incorporarán en breve, implemente eso mediante el uso de metacaracteres y comodines de autofs. ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
152
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Caso de estudio
Obtener información de usuarios de red desde un servicio de directorio LDAP Ahora configurará serverX para obtener información acerca de los usuarios de red desde un servidor de directorio LDAP disponible en todas las máquinas de la clase. Esta es la información que se le proporcionó acerca del servidor LDAP: • Nombre de host: instructor.example.com • DN de la base de búsqueda: dc=example,dc=com • Certificado CA: http://instructor.example.com/pub/EXAMPLE-CA-CERT
1
Después, configurará serverX para montar automáticamente los directorios hogar de los usuarios de red basados en LDAP cuando inicien sesión. Esta es la información que se le proporcionó acerca del servidor de almacenamiento NFS que contiene los directorios hogar: • Nombre de host: instructor.example.com • Directorio exportado: /home/guests/ ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
RH135-6-es-2-20110131
153
Capítulo 10. Cuentas de usuarios de red con LDAP
Notas personales
154
RH135-6-es-2-20110131
Prueba de criterios
Resumen de la unidad Autenticación de red mediante el uso de un servidor LDAP En esta sección, aprendió a: • Configurar el sistema para autenticar usuarios administrados en un servicio de directorios LDAP central . Montaje en red de directorios hogar En esta sección, aprendió a: • Automontar directorios hogar NFS existentes para usuarios remotos mediante el uso de metacaracteres de asignación indirecta .
RH135-6-es-2-20110131
155
156
UNIDAD ONCE
CONTROL DE ACCESO A LOS ARCHIVOS Introducción Temas tratados en esta unidad: • Administración de grupos • Listas de control de acceso
RH135-6-es-2-20110131
157
Capítulo 11. Control de acceso a los archivos
Administración de grupos Al igual que los usuarios, los grupos tienen un nombre y un número (GID). Los grupos locales están definidos en /etc/group. También se puede usar LDAP para proporcionar información sobre los grupos.
Grupos principales • Cada usuario tiene exactamente un grupo principal. • Para los usuarios locales, el grupo principal está definido por el número de GID del grupo indicado en el tercer campo de /etc/passwd. • Normalmente, el grupo principal adquiere nuevos archivos que son creados por el usuario. • Normalmente, el grupo principal de un usuario creado recientemente es un grupo creado con el mismo nombre que el del usuario. El usuario es el único miembro de este grupo privado de usuarios (UPG).
Grupos adicionales • Los usuarios pueden ser miembros de ninguno o más grupos adicionales. • Los usuarios que son miembros adicionales de grupos locales se enumeran en el último campo de la entrada del grupo en /etc/group: Para grupos locales, la membresía del usuario se determina por una lista de usuarios separados por comas que se encuentran en el último campo de la entrada del grupo en /etc/group: groupname:password:GID:list,of,users,in,this,group
• La membresía del grupo adicional se utiliza para ayudar a asegurar que los usuarios tengan permisos para acceder a los archivos y a otros recursos en el sistema.
nota Dada la creación automática de grupos privados de usuarios (GID 500+), generalmente se recomienda establecer aparte un rango de números de GID para su uso con los grupos adicionales. Aquí usaremos el rango de 200 a 400, si bien existe el riesgo de colisión con un Grupo del sistema (GID 0-499).
Administrar grupos adicionales 1.
groupadd -g 201 groupname se usa para crear un grupo adicional con el nombre groupname, con un GID de 201.
2.
usermod -aG groupname username agregará al usuario username al grupo groupname.
158
RH135-6-es-2-20110131
Administración de grupos
Importante El uso de la opción -a hace que usermod funcione en modo "adición". Sin esta, el usuario se eliminaría de todos los demás grupos adicionales.
Referencias Red Hat Enterprise Linux Deployment Guide • Capítulo 15: Usuarios y grupos Páginas del manual: group(5), groupadd(8), groupdel(8), usermod(8)
RH135-6-es-2-20110131
159
Capítulo 11. Control de acceso a los archivos
Práctica Ejercicio
Administración de grupos Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Ahora colocaremos a los usuarios que se crearon anteriormente en serverX en grupos. Grupo
Nombre del grupo
Lista de usuarios
Profesores
profs
faraday, juliet, elvis
Estudiantes de posgrado
grads
jack, kate, james, elvis
Practicantes de verano
interns
walt, ben, claire, hugo, elvis
Tabla 11.1. Asignaciones de usuarios y grupos Tenga en cuenta que deberá crear un usuario adicional con el nombre elvis, que deberá colocarse en los tres grupos. 1.
Cree los grupos especificados en la tabla anterior y asigne los miembros correspondientes de cada grupo.
2.
Use el comando id para verificar las membresías del grupo de todos los usuarios.
160
RH135-6-es-2-20110131
Administración de las listas de control de acceso al sistema de archivos
Administración de las listas de control de acceso al sistema de archivos Soporte de listas de control de acceso • Los sistemas de archivos Standard Linux (ext2/3/4) admiten la configuración de permisos de archivos más complejos mediante el uso de POSIX ACL, siempre que el sistema de archivos se monte con la opción acl. • En Red Hat Enterprise Linux, si el último carácter de la cadena de permiso que muestra ls -l es +, el archivo o directorio tiene un conjunto de ACL. • getfacl file se usa para mostrar las ACL en un archivo. u:elvis:rwu:3142:--u::rwx
# applies to user elvis # applies to user id 3142 # applies to file's owner (user)
g:music:rwx g:10:r-x g::rw-
# applies to group music # applies to group id 10 # applies to file's group
o::rwx
# applies to everyone else
• setfacl se usa para establecer o modificar ACL en un archivo. $ setfacl -m u:friend:rw filename $ setfacl -m g:grads:rw filename $ setfacl -m g:profs:r filename
# grants rw to user friend # grants rw to the group grads # grants r to the group profs
$ setfacl -x u:friend
# removes the existing ACL for friend
$ setfacl -m o::- filename
# changes normal "other" permissions
Use este espacio para sus notas.
Prioridad de permisos Al determinar si un proceso (es decir, un programa en ejecución) puede acceder a un archivo, los permisos de archivos y las ACL se aplican de la siguiente manera: 1.
Si el proceso se ejecuta como el usuario que es propietario del archivo, entonces los permisos del usuario del archivo aplican
2.
Además, si el proceso se ejecuta como un usuario que está detallado en una entrada de ACL de usuario, entonces la ACL de usuario aplica (siempre que esté permitido por la máscara, en inglés mask)
RH135-6-es-2-20110131
161
Capítulo 11. Control de acceso a los archivos
3.
Además, si el proceso se ejecuta como un grupo que coincide con el grupo que es propietario del archivo o como un grupo con una entrada de ACL de grupo explícita, si el permiso es otorgado por cualquier grupo coincidente, aplica (siempre que esté permitido por la máscara o mask)
4. De lo contrario, aplican los otros permisos del archivo
La máscara ACL • Los archivos que tienen ACL tienen una "máscara" (mask) que limita el máximo de permisos que pueden tener tanto el grupo que es propietario del archivo como los usuarios y los grupos adicionales en ACL. • getfacl file muestra la máscara actual como mask::permissions. • Los permisos de los grupos que muestra ls -ld file también reflejan la máscara actual (no los permisos del grupo propietario)
Importante Si se cambian los permisos de los grupos en un archivo con una ACL mediante el uso de chmod, los permisos reales del grupo propietario no se cambian. En realidad se cambia la máscara, que limita el máximo de permisos de todos los grupos y los usuarios adicionales que tienen acceso al archivo. (Es decir, los permisos para todos, excepto el usuario propietario y los usuarios en la otra categoría del archivo).
Use este espacio para sus notas.
ACL predeterminadas (herencia) • Los directorios pueden tener entradas de "ACL predeterminada" que se establecen automáticamente en archivos nuevos creados en ese directorio. • setfacl -m d:u:elvis:rw directory establecería una entrada de ACL predeterminada que otorgaría acceso de lectura y escritura al usuario elvis en todos los archivos nuevos creados en directory. • Esto es similar a la manera en que el permiso setgid, cuando se establece en un directorio, hace que los archivos nuevos creados en ese directorio pertenezcan al mismo grupo al que pertenece el directorio.
162
RH135-6-es-2-20110131
Administración de las listas de control de acceso al sistema de archivos
nota Al configurar ACL predeterminadas en un directorio, si desea asegurar que los usuarios puedan acceder al contenido de nuevos subdirectorios creados en este, asegúrese de incluir permisos ejecutables en su ACL: [user@host ~]$ setfacl -m d:u:elvis:rx directory
Normalmente, los usuarios no adquirirán el permiso ejecutable automáticamente en los archivos regulares creados recientemente porque, a diferencia de los nuevos directorios, la máscara ACL de un archivo regular nuevo es rw- de manera predeterminada.
Use este espacio para sus notas.
Opción de montaje de ACL • La compatibilidad para entradas POSIX ACL se debe habilitar cuando se monta el sistema de archivos. • El instalador configura todos los sistemas de archivos ext4 que crea de modo que activen el soporte de ACL automáticamente. [root@host ~]# dumpe2fs /dev/block-dev | grep 'Default mount' Default mount options: user_xattr acl
• Si formatea un sistema de archivos manualmente, deberá montarlo con la opción de montaje acl. • Puede configurar un sistema de archivos ext4 formateado manualmente para que active el soporte automáticamente al realizar el montaje mediante el uso de tune2fs para establecer las opciones de montaje predeterminadas: [root@host ~]# tune2fs -o acl,user_xattr /dev/block-dev
RH135-6-es-2-20110131
163
Capítulo 11. Control de acceso a los archivos
nota La opción de montaje user_xattr no está relacionada en absoluto con POSIX ACL, pero habilita los atributos extendidos del usuario. Estos son utilizados por una cantidad de programas para almacenar información personalizada con los archivos. Es una buena idea dejar configurada esta opción predeterminada aunque no es necesaria para habilitar POSIX ACL. Consulte attr(5) para obtener más información.
Use este espacio para sus notas.
Referencias Red Hat Enterprise Linux Storage Administration Guide • Capítulo 16: Listas de control de acceso Páginas del manual: acl(5), getfacl(1), setfacl(1)
Permisos de directorio de colaboración En el cuestionario que se encuentra a continuación, use los permisos POSIX ACL y estándar, según corresponda, para resolver los problemas. 1.
Dado un directorio normal, donde el usuario propietario tiene permisos rwx, el grupo propietario tiene permisos rwx y otro tiene permisos ---, ¿qué comando otorgaría a un segundo grupo permisos r-x sin cambiar los permisos del grupo propietario existente o del otro?
2.
¿Qué comando otorgaría automáticamente acceso de lectura y escritura para ese segundo grupo a cualquier archivo recientemente creado en ese directorio?
3.
Pregunta adicional. ¿Qué comando configuraría automáticamente el grupo propietario como el grupo propietario de cualquier archivo creado recientemente en ese directorio?
164
RH135-6-es-2-20110131
Administración de las listas de control de acceso al sistema de archivos
RH135-6-es-2-20110131
165
Capítulo 11. Control de acceso a los archivos
Prueba
Prueba de criterios Caso de estudio
Uso de ACL para otorgar y limitar el acceso En este laboratorio se utilizan usuarios y grupos creados anteriormente en serverX. Si aún no tiene los usuarios y grupos definidos, ejecute lab-add-users en serverX. Los estudiantes de posgrado necesitan un directorio de colaboración denominado /opt/ research, donde puedan almacenar los resultados de investigación generados. Solo los miembros de los grupos profs y grads deben poder crear archivos nuevos en el directorio, y los nuevos archivos deben tener las siguientes propiedades: • El directorio debe ser propiedad del usuario root. • Los archivos nuevos deben pertenecer al grupo grads. • Los profesores (miembros del grupo profs) deben tener automáticamente acceso de lectura y escritura a los nuevos archivos. • Los practicantes de verano (miembros del grupo interns) deben tener automáticamente acceso de solo lectura a los nuevos archivos. • Otros usuarios (que no sean miembros de grupos profs, grads ni interns) no deben poder acceder al directorio y ni a su contenido en absoluto. Consulte el apéndice Soluciones cuando haya finalizado de revisar su solución, para ver algunos métodos posibles. ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
166
RH135-6-es-2-20110131
Administración de las listas de control de acceso al sistema de archivos
Notas personales
RH135-6-es-2-20110131
167
Capítulo 11. Control de acceso a los archivos
Resumen de la unidad Administración de grupos En esta sección, aprendió a: • Identificar grupos principales frente a adicionales • Crear un nuevo grupo • Eliminar un grupo • Agregar una cuenta de usuario a un grupo . Administración de las listas de control de acceso al sistema de archivos En esta sección, aprendió a: • Usar una entrada de ACL para otorgar o bloquear el acceso a archivos • Crear una lista de ACL en un archivo • Borrar una entrada de ACL • Asignar grupo de propietarios o una ACL a nuevos archivos creados en un directorio de forma automática .
168
RH135-6-es-2-20110131
UNIDAD DOCE
ADMINISTRACIÓN DE SELINUX Introducción Temas tratados en esta unidad: • Revisión de los conceptos básicos de SELinux • Visualización y configuración de los modos de SELinux • Visualización y configuración de los contextos de archivo de SELinux • Ajuste del comportamiento de la política con booleanos de SELinux • Control de las violaciones de la política de SELinux
RH135-6-es-2-20110131
169
Capítulo 12. Administración de SELinux
Conceptos básicos de seguridad de SELinux SELinux, la seguridad mejorada de Linux, es un método adicional para proteger su sistema.
Suponiendo que queremos permitir el acceso remoto de usuarios anónimos a un servidor web, debemos abrir los puertos a través del cortafuego. Sin embargo, eso significa que personas malintencionadas pueden intentar irrumpir en el sistema a través de una vulnerabilidad de seguridad y, si ponen en riesgo el proceso de servidor web, obtener sus permisos: los permisos del usuario Apache y del grupo Apache. Ese usuario o grupo tiene acceso de lectura a cosas como la raíz del documento (/var/www/html), así como acceso de escritura a /tmp, /var/tmp y cualquier otro archivo o directorio que sea modificable por todos los usuarios.
SELinux es un conjunto de reglas de seguridad que determina qué proceso puede acceder a qué archivos, directorios, puertos, etc. Los archivos, procesos, directorios y puertos tienen etiquetas de seguridad especiales denominadas contextos de SELinux. Un contexto es simplemente un nombre que usa la política de SELinux para determinar si un proceso puede o no acceder a un archivo, directorio o puerto. De forma predeterminada, la política no permite ninguna interacción, de modo que reglas explícitas otorgan el acceso. Si no hay ninguna regla de permiso, no se permite ningún tipo de acceso. Las etiquetas de SELinux tienen varios contextos, pero nosotros estamos más interesados en el tercer contexto: el contexto de tipo. Los nombres de contexto de tipo usualmente terminan en _t. El contexto de tipo para el servidor web es httpd_t. El contexto de tipo para los archivos y directorios que normalmente se encuentran en /var/www/html es httpd_sys_content_t. El contexto de tipo para los archivos y directorios que normalmente se encuentran en /tmp y / var/tmp es tmp_t. El contexto de tipo para los puertos de servidor web es http_port_t. Hay una regla en la política que permite a Apache (el proceso de servidor web que se ejecuta como httpd_t) acceder a archivos y directorios con un contexto que normalmente se encuentran en /var/www/html y otros directorios de servidor web (httpd_sys_content_t). No hay una regla en la política para los archivos que normalmente se encuentran en /tmp y / var/tmp, de modo que no se permite el acceso. Con SELinux, un usuario malintencionado no podría acceder al directorio /tmp, y mucho menos escribir archivos en él. SELinux incluso tiene reglas para los sistemas de archivos remotos como NFS y CIFS, aunque todos los archivos en esos sistemas de archivos se etiquetan con el mismo contexto. Uno de los objetivos de SELinux es proteger los datos del usuario de servicios del sistema que se comprometan.
Referencias Red Hat Enterprise Linux SELinux Guide • Capítulo 2: Introducción
170
RH135-6-es-2-20110131
Práctica Cuestionario
Conceptos básicos de SELinux 1.
¿A cuáles de las siguientes opciones SELinux aplica el contexto de seguridad? (Marque todas las opciones que correspondan). (seleccione uno o más de los siguientes…) a. Puertos b. Procesos c. Archivos d. Directorios e. Sistemas de archivos remotos
2.
SELinux puede usarse para: (seleccione uno o más de los siguientes…) a. Impedir que un servicio se ejecute en otros puertos. b. Proteger los datos de usuario de aplicaciones como el servidor web. c. Impedir que sistemas remotos accedan a puertos locales. d. Mantener el sistema actualizado. e. Acceder a un servidor web.
3.
¿Cuáles de las siguientes opciones corresponden a tipos estándares de contexto de SELinux? (seleccione uno o más de los siguientes…) a. selinux_type b. object_r c. httpd_sys_content_t d. tmp_t e. user_u
RH135-6-es-2-20110131
171
Capítulo 12. Administración de SELinux
Modos de SELinux Para los fines de la solución de problemas, podemos deshabilitar temporalmente la protección de SELinux, con los modos de SELinux. En el modo obligatorio, SELinux deniega de forma activa el acceso al servidor web que intente leer archivos con el contexto de tipo tmp_t. En el modo obligatorio, SELinux registra y protege. El modo permisivo se usa generalmente para solucionar problemas. En el modo permisivo, SELinux permite todas las interacciones, incluso si no hay ninguna regla explícita, y registra todas las interacciones denegadas. Este modo se puede usar para determinar si usted tiene un problema de SELinux. No se requiere volver a arrancar el sistema para pasar del modo obligatorio al modo permisivo, o viceversa. Un tercer modo, el modo deshabilitado, deshabilita SELinux por completo. Deberá volver a arrancar el sistema para deshabilitar SELinux por completo, o bien para pasar del modo deshabilitado al modo obligatorio o permisivo.
Importante Si tiene previsto volver a habilitar las restricciones de SELinux, se recomienda usar el modo permisivo, en lugar de deshabilitar SELinux por completo. Una de las razones es que, incluso en el modo permisivo, el kernel automáticamente mantendrá las etiquetas necesarias del sistema de archivos de SELinux, lo que evitará tener que efectuar una colocación de etiquetas costosa por segunda vez cuando vuelva a arrancar el sistema con SELinux habilitado nuevamente.
Referencias Red Hat Enterprise Linux SELinux Guide • Sección 5.5: Modos de SELinux
172
RH135-6-es-2-20110131
Práctica Cuestionario
Modos de SELinux 1.
El modo registro, pero no la protección.
2.
El modo el sistema.
3.
¿Cuáles de los siguientes son modos de SELinux válidos?
de SELinux permite el de SELinux protege
(seleccione uno o más de los siguientes…) a. Obligatorio b. Prueba c. Permisivo d. Deshabilitado e. Registro
RH135-6-es-2-20110131
173
Capítulo 12. Administración de SELinux
Mostrar y modificar modos de SELinux Tenga en cuenta que /etc/sysconfig/selinux contiene comentarios útiles: # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
Use /etc/sysconfig/selinux para cambiar el modo predeterminado de SELinux durante el proceso de arranque. En el ejemplo anterior, se establece el modo obligatorio. Para mostrar el modo actual de SELinux, use getenforce. Para modificar el modo actual de SELinux, use setenforce: [root@serverX ~]# Enforcing [root@serverX ~]# usage: setenforce [root@serverX ~]# [root@serverX ~]# Permissive [root@serverX ~]# [root@serverX ~]# Enforcing
getenforce setenforce [ Enforcing | Permissive | 1 | 0 ] setenforce 0 getenforce setenforce Enforcing getenforce
Referencias Red Hat Enterprise Linux SELinux Guide • Sección 5.5: Modos de SELinux Páginas del manual: selinux(8), getenforce (1), setenforce (1)
174
RH135-6-es-2-20110131
Práctica Ejercicio
Cambio de los modos permisivo y obligatorio Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
En serverX, cambie el modo predeterminado de SELinux a permisivo y vuelva a arrancar el sistema.
2.
Después de arrancar nuevamente el sistema, verifique que se encuentre en modo permisivo.
3.
Cambie el modo predeterminado de SELinux a obligatorio.
4.
Cambie el modo actual de SELinux a obligatorio.
RH135-6-es-2-20110131
175
Capítulo 12. Administración de SELinux
Mostrar y modificar contextos de archivo de SELinux Muchos comandos que manejan archivos tienen una opción (generalmente, -Z) para mostrar o establecer contextos de SELinux. Por ejemplo, ps, ls, cp y mkdir usan la opción -Z para mostrar o establecer contextos de SELinux. [root@serverX ~]# ps axZ LABEL PID TTY STAT TIME COMMAND system_u:system_r:init_t:s0 1 ? Ss 0:00 /sbin/init system_u:system_r:kernel_t:s0 2 ? S 0:00 [kthreadd] system_u:system_r:kernel_t:s0 3 ? S 0:00 [migration/0] ... [root@serverX ~]# service httpd start [root@serverX ~]# ps -ZC httpd LABEL PID TTY TIME CMD unconfined_u:system_r:httpd_t:s0 27672 ? 00:00:00 httpd unconfined_u:system_r:httpd_t:s0 27675 ? 00:00:00 httpd ... [root@serverX ~]# ls -Z /home drwx------. root root system_u:object_r:lost_found_t:s0 lost+found drwx------. student student unconfined_u:object_r:user_home_dir_t:s0 student drwx------. visitor visitor unconfined_u:object_r:user_home_dir_t:s0 visitor [root@serverX ~]# ls -Z /var/www drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 error drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 icons
¿Qué determina el contexto de SELinux inicial de un archivo? En general, es el directorio principal. El contexto del directorio principal se asigna al archivo creado recientemente. Esto se aplica a comandos como vim, cp ytouch; sin embargo, si se crea un archivo en otro lugar y los permisos se conservan (como con mv o cp -a), este también conservará el contexto de SELinux. La política tiene algunas reglas especiales, denominadas reglas de transición de tipo, que pueden cambiar el contexto de tipo del valor predeterminado. Estas reglas no se analizan en este curso. [root@serverX ~]# ls -Zd /var/www/html/ drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/ [root@serverX ~]# touch /var/www/html/index.html [root@serverX ~]# ls -Z /var/www/html/index.html -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/ index.html
Se puede usar semanage fcontext para mostrar o modificar las reglas que usa restorecon para establecer los contextos de archivo predeterminados. Usa expresiones regulares extendidas para especificar los nombres de archivo y ruta. La expresión regular extendida que más se usa en las reglas de fcontext es (/.*)?, que significa opcionalmente, coincidir / seguido de cualquier cantidad de caracteres. En esencia, coincidirá el directorio mencionado antes de la expresión y todo lo que se encuentre en este directorio de manera recursiva. restorecon es parte del paquete policycoreutil y semanage es parte del paquete policycoreutil-python. [root@serverX ~]# touch /tmp/file1 /tmp/file2
176
RH135-6-es-2-20110131
Mostrar y modificar contextos de archivo de SELinux
[root@serverX ~]# ls -Z /tmp/file* -rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 /tmp/file1 -rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 /tmp/file2 [root@serverX ~]# mv /tmp/file1 /var/www/html/ [root@serverX ~]# cp /tmp/file2 /var/www/html/ [root@serverX ~]# ls -Z /var/www/html/file* -rw-r--r--. root root unconfined_u:object_r:user_tmp_t:s0 /var/www/html/file1 -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/file2 [root@serverX ~]# semanage fcontext -l ... /var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0 ... [root@serverX ~]# restorecon -Rv /var/www/ restorecon reset /var/www/html/file1 context unconfined_u:object_r:user_tmp_t:s0>system_u:object_r:httpd_sys_content_t:s0 [root@serverX ~]# ls -Z /var/www/html/file* -rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/file1 -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/file2
En el siguiente ejemplo, se muestra cómo usar semanage para agregar un contexto a un directorio nuevo. [root@serverX ~]# mkdir /virtual [root@serverX ~]# touch /virtual/index.html [root@serverX ~]# ls -Zd /virtual/ drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /virtual/ [root@serverX ~]# ls -Z /virtual/ -rw-r--r--. root root unconfined_u:object_r:default_t:s0 index.html [root@serverX ~]# semanage fcontext -a -f "" -t httpd_sys_content_t '/virtual(/.*)?' [root@serverX ~]# restorecon -RFvv /virtual [root@serverX ~]# ls -Zd /virtual/ drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /virtual/ [root@serverX ~]# ls -Z /virtual/ -rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 index.html
Referencias Red Hat Enterprise Linux SELinux Guide • Sección 5.7: Contextos de SELinux: etiquetado de archivos Páginas del manual: restorecon(8), semanage(8)
RH135-6-es-2-20110131
177
Capítulo 12. Administración de SELinux
Práctica Ejercicio
Corrección de contextos de archivos de SELinux Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Se le ha solicitado que ajuste la configuración DNS de su máquina remota para que coincida exactamente con la configuración de su máquina de escritorio. Usted decide que la forma más fácil es copiar el archivo /etc/resolv.conf de la máquina local en la máquina remota. 1.
Transfiera el archivo /etc/resolv.conf de su máquina de escritorio al directorio hogar root en serverX.
2.
Use el intérprete de comandos para conectarse a serverX como root. Todos los pasos siguientes deben ejecutarse en su servidor.
3.
Observe el contexto de SELinux de /etc/resolv.conf inicial. Contexto /etc/resolv.conf original:
4.
Mueva resolv.conf del directorio hogar de root a /etc/resolv.conf.
5.
Observe el contexto de SELinux de /etc/resolv.conf recientemente copiado. Contexto /etc/resolv.conf nuevo:
6.
Restaure el contexto de SELinux de /etc/resolv.conf recientemente posicionado.
7.
Observe el contexto de SELinux de /etc/resolv.conf restaurado. Contexto /etc/resolv.conf restaurado:
178
RH135-6-es-2-20110131
Administración de booleanos de SELinux
Administración de booleanos de SELinux Los booleanos de SELinux son opciones que modifican el comportamiento de la política de SELinux. Los booleanos de SELinux son reglas que pueden habilitarse o deshabilitarse. Los administradores de seguridad pueden usarlos para adaptar la política y hacer ajustes selectivos. Muchos paquetes tienen páginas del manual *_selinux(8) que pueden detallar algunos de los booleanos que usan; man -k '_selinux' puede buscar estas páginas del manual fácilmente. getsebool se usa para mostrar los booleanos y setsebool se usa para modificarlos. setsebool -P modifica la política de SELinux para que la modificación sea persistente. semanage boolean -l mostrará si el booleano es persistente o no. [root@serverX ~]# getsebool -a abrt_anon_write --> off allow_console_login --> on allow_corosync_rw_tmpfs --> off ... [root@serverX ~]# getsebool httpd_enable_homedirs httpd_enable_homedirs --> off [root@serverX ~]# setsebool httpd_enable_homedirs on [root@serverX ~]# semanage boolean -l | grep httpd_enable_homedirs httpd_enable_homedirs -> off Allow httpd to read home directories [root@serverX ~]# getsebool httpd_enable_homedirs httpd_enable_homedirs --> on [root@serverX ~]# setsebool -P httpd_enable_homedirs on [root@serverX ~]# semanage boolean -l | grep httpd_enable_homedirs httpd_enable_homedirs -> on Allow httpd to read home directories
Referencias Red Hat Enterprise Linux SELinux Guide • Sección 5.6: Booleanos Páginas del manual: booleans(8), getsebool(8), setsebool(8), semanage(8)
RH135-6-es-2-20110131
179
Capítulo 12. Administración de SELinux
Control de las violaciones de SELinux El paquete setroubleshoot-server debe instalarse para enviar mensajes de SELinux a / var/log/messages. setroubleshoot-server escucha mensajes de auditoría en /var/ log/audit/audit.log y envía un breve resumen a /var/log/messages. Este resumen incluye identificadores únicos (UUIDs) para las violaciones de SELinux que pueden utilizarse para recopilar más información. sealert -l UUID se usa para generar un informe sobre un incidente específico. sealert -a /var/log/audit/audit.log se usa para generar informes sobre todos los incidentes en un archivo. [root@serverX [root@serverX [root@serverX [root@serverX
~]# ~]# ~]# ~]#
touch /root/file3 mv /root/file3 /var/www/html service httpd start elinks -dump http://serverX/file3 Forbidden You don't have permission to access /file3 on this server. [root@serverX ~]# tail /var/log/audit/audit.log ... type=AVC msg=audit(1292526292.144:952): avc: denied { getattr } for pid=27675 comm="httpd" path="/var/www/html/file3" dev=dm-1 ino=54545 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file ... [root@serverX ~]# tail /var/log/messages ... Dec 16 14:04:59 serverX setroubleshoot: SELinux is preventing /usr/sbin/httpd "getattr" access to /var/www/html/file3. For complete SELinux messages. run sealert -l e6e1d1d6d716-4e2e-863c-bba4d2b2407a [root@serverX ~]# sealert -l e6e1d1d6-d716-4e2e-863c-bba4d2b2407a Summary: SELinux is preventing /usr/sbin/httpd "getattr" access to /var/www/html/file3. Detailed Description: SELinux denied access requested by httpd. /var/www/html/file3 may be a mislabeled. /var/www/html/file3 default SELinux type is httpd_sys_content_t, but its current type is admin_home_t. Changing this file back to the default type, may fix your problem. ... Allowing Access: You can restore the default system context to this file by executing the restorecon command. restorecon '/var/www/html/file3', if this file is a directory, you can recursively restore using restorecon -R '/var/www/html/file3'. Fix Command: /sbin/restorecon '/var/www/html/file3' ...
180
RH135-6-es-2-20110131
Control de las violaciones de SELinux
nota En la sección "Permiso de acceso", se sugiere restorecon /var/www/html/file3. Si deben ajustarse otros archivos, restorecon puede restablecer el contexto de forma recursiva: restorecon -R /var/www/.
Referencias Red Hat Enterprise Linux SELinux Guide • Capítulo 8: Solución de problemas Página del manual: sealert(8)
RH135-6-es-2-20110131
181
Capítulo 12. Administración de SELinux
Práctica Cuestionario
Control de las violaciones de SELinux 1.
¿Qué archivo contiene entradas de registro que proporcionan identificadores únicos para las violaciones de SELinux? .
2.
Dado el UUID de una violación de SELinux, ¿qué comando genera un informe de texto del problema? .
182
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Ejercicio
Administración de SELinux Antes de comenzar... Antes de comenzar, ejecute el comando lab-setup-selinux en desktopX. Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
Inicie sesión en serverX como student. Abra un terminal y cambie al usuario root.
2.
Copie el fichero web_content.tgz de instructor:/var/ftp/pub/materials en /tmp.
3.
Extraiga el fichero en /tmp.
4.
Mueva el directorio extraído a /var/www/html.
5.
Inicie el servicio web.
6.
Intente observar el nuevo directorio con el navegador web al visitar la URL http://serverX/ web_content.
7.
Busque en el sistema los UUID de cualquier violación de SELinux que pueda haber generado su intento de navegar el contenido recientemente instalado.
8.
Genere informes de texto sobre las violaciones.
9.
Siga las instrucciones del informe para restaurar los contextos de SELinux del contenido recientemente instalado.
10. Confirme que pueda ver el material desde su navegador web al visitar la URL http://serverX/ web_content.
RH135-6-es-2-20110131
183
Capítulo 12. Administración de SELinux
Notas personales
184
RH135-6-es-2-20110131
Prueba de criterios
Resumen de la unidad Conceptos básicos de seguridad de SELinux En esta sección, aprendió a: • Identificar los conceptos básicos de seguridad de SELinux como contexto, usuario/ función/tipo y política . Modos de SELinux En esta sección, aprendió a: • Describir las diferencias funcionales entre los modos permisivo y obligatorio de SELinux cuando está habilitada la seguridad de SELinux . Mostrar y modificar modos de SELinux En esta sección, aprendió a: • Ver y modificar el modo actual de SELinux de un sistema • Establecer el modo predeterminado de SELinux de un sistema . Mostrar y modificar contextos de archivo de SELinux En esta sección, aprendió a: • Ver el contexto de seguridad de SELinux de los procesos y archivos • Configurar el contexto de seguridad de SELinux de los archivos en la política • Restaurar el contexto de seguridad de SELinux de los archivos . Administración de booleanos de SELinux En esta sección, aprendió a: • Usar los booleanos de SELinux para ajustar el comportamiento de la política . Control de las violaciones de SELinux En esta sección, aprendió a: • Implementar las herramientas de análisis de registros de SELinux .
RH135-6-es-2-20110131
185
186
UNIDAD TRECE
INSTALACIÓN Y ADMINISTRACIÓN DE SOFTWARE Introducción Temas tratados en esta unidad: • Uso de yum • Grupos de paquetes • Uso de rpm • Repositorios de terceros
RH135-6-es-2-20110131
187
Capítulo 13. Instalación y administración de software
Uso de yum yum es una herramienta eficaz de la línea de comando que puede usarse para administrar (instalar, actualizar, eliminar y consultar) los paquetes de software de modo más flexible. Generalmente, los paquetes oficiales de Red Hat se descargan de Red Hat Network (RHN). Cuando usted registra su máquina en RHN, yum se configura automáticamente para su uso. También puede configurar yum para obtener paquetes de repositorios de paquetes de terceros en la red.
Comandos yum básicos 1.
yum help mostrará la información de uso.
2.
yum list muestra los paquetes instalados y disponibles.
3.
yum search KEYWORD enumera los paquetes por palabra clave.
4. yum info PACKAGENAME brinda información detallada sobre un paquete. 5.
yum install PACKAGENAME obtiene e instala un paquete de software, incluidas las dependencias.
6. yum remove PACKAGENAME quita un paquete de software instalado, incluidos los paquetes admitidos. 7.
yum update PACKAGENAME obtiene e instala una nueva versión del paquete de software, incluidas las dependencias. Generalmente, el proceso intenta preservar los archivos de configuración, pero en algunos casos, se les cambiará el nombre si el empaquetador considera que el anterior no funcionará después de la actualización. Si no se especifica el PACKAGENAME, instalará todas las actualizaciones relevantes.
8. yum provides PATHNAME muestra paquetes que coinciden con el nombre de ruta especificado (que a menudo, incluye caracteres comodines) Use este espacio para sus notas.
Ejemplo de comandos YUM: Para buscar paquetes que tengan un "servidor web" en su descripción, resumen o nombre de paquete: [root@serverX ~]# yum search 'web server' ============================= Matched: web server ============================== mod_auth_mysql.x86_64 : Basic authentication for the Apache web server using a : MySQL database webalizer.x86_64 : A flexible Web server log file analysis program freeradius.x86_64 : High-performance and highly configurable free RADIUS server hsqldb.x86_64 : Hsqldb Database Engine
188
RH135-6-es-2-20110131
Ejemplo de comandos YUM:
htdig.x86_64 : ht://Dig - Web search engine htdig-web.x86_64 : Scripts and HTML code needed for using ht://Dig as a web : search engine httpd.x86_64 : Apache HTTP Server ...
Para obtener información sobre el servidor HTTP Apache: [root@serverX ~]# yum info httpd Available Packages Name : httpd Arch : x86_64 Version : 2.2.15 Release : 5.el6 Size : 811 k Repo : base Summary : Apache HTTP Server URL : http://httpd.apache.org/ License : ASL 2.0 Description: The Apache HTTP Server is a powerful, efficient, and extensible : web server.
Para instalar, actualizar y quitar el paquete httpd: [root@serverX ~]# yum install httpd [root@serverX ~]# yum update httpd [root@serverX ~]# yum remove httpd
Advertencia yum remove quitará los paquetes enumerados y todo paquete que requiera los paquetes que se están quitando (y los paquetes que requieran esos paquetes, y así sucesivamente). Esto puede provocar la eliminación inesperada de determinados paquetes, por lo que deberá comprobar cuidadosamente la lista de paquetes que se quitarán.
Referencias Red Hat Enterprise Linux Deployment Guide • Capítulo 1: Yum Páginas del manual: yum(1), yum.conf(5)
RH135-6-es-2-20110131
189
Capítulo 13. Instalación y administración de software
Práctica Ejercicio
Búsqueda e instalación de paquetes Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
Intente ejecutar el comando gnuplot. Se le indicará que no está instalado.
2.
Busque paquetes de trazado.
3.
Obtenga más información acerca del paquete gnuplot.
4.
Instale el paquete gnuplot.
5.
Intente quitar el paquete gnuplot, pero seleccione "no". ¿Cuántos paquetes se quitarían?
6.
Intente quitar el paquete gnuplot-common, pero seleccione "no". ¿Cuántos paquetes se quitarían?
190
RH135-6-es-2-20110131
Administración de grupos de componentes YUM
Administración de grupos de componentes YUM yum también representa el concepto de grupos de componentes, que son colecciones de software relacionados agrupados en torno a una solución determinada. Revise la salida del comando yum help; para ello, filtre las línea con la frase "group" (grupo).
Actividad de lectura: Grupos de componentes YUM Revise la página del manual yum(1) y lea las secciones que describen los comandos yum que comienzan con "group". 1.
yum grouplist Enumera todos los grupos disponibles.
2.
yum groupinfo
3.
yum groupinstall
4.
yum grouperase
5.
yum groupupdate
nota El comando yum groupupdate puede ser particularmente útil después de agregar un nuevo repositorio si el repositorio agrega todos los paquetes a los grupos estándar que tiene instalados.
Referencias Página del manual: yum(1)
RH135-6-es-2-20110131
191
Capítulo 13. Instalación y administración de software
Práctica Ejercicio
Administración de grupos de componentes YUM Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. En este ejercicio, recopilará información acerca del grupo de componentes “Servidor de base de datos PostgreSQL” y luego lo instalará en serverX. 1.
Enumere todos los grupos de componentes disponibles.
2.
Obtenga más información acerca del grupo de componentes PostgreSQL Database Server, incluso una lista de los paquetes incluidos.
3.
Instale el grupo de componentes PostgreSQL Database Server.
192
RH135-6-es-2-20110131
Manipulación de software de terceros
Manipulación de software de terceros La utilidad rpm es una herramienta de nivel bajo que es útil para obtener información acerca del contenido de los archivos de paquete y los paquetes instalados. Obtiene su información desde una base de datos local o de los archivos del paquete mismos. La forma general de una consulta es: • rpm -q [select-options] [query-options] • rpm --query [select-options] [query-options]
Consultas RPM: Opciones de selección • -q -a: todos los paquetes instalados • -q PACKAGENAME: PACKAGENAME actualmente instalado • -q -p PACKAGEFILE.rpm: archivo de paquete con el nombre PACKAGEFILE.rpm • -q -f FILENAME: qué paquete proporciona FILENAME
Consultas RPM: Información sobre el contenido de paquetes • -q: indica el nombre y la versión del paquete; compare con yum list. • -q -i: muestra información sobre el paquete; compare con yum info. • -q -l: enumera todos los archivos instalados por el paquete especificado. • -q -c: enumera sólo los archivos de configuración. • -q -d: enumera sólo los archivos de documentación. • -q --scripts: enumera los scripts de intérprete de comandos que pueden ejecutarse una vez que se haya instalado o desinstalado el paquete. • -q --changelog: enumera la información de cambio del paquete
nota El comando repoquery también puede usarse para obtener información sobre los paquetes y su contenido. La diferencia con rpm es que busca esa información en los repositorios YUM y RHN y no en la base de datos local de los paquetes instalados.
Ejemplo de comandos de consulta rpm: Consulta de paquetes instalados: [root@serverX ~]# rpm -q samba-client samba-client-3.5.4-68.el6.x86_64
RH135-6-es-2-20110131
193
Capítulo 13. Instalación y administración de software
[root@serverX ~]# rpm -q zlib -l /lib64/libz.so.1 /lib64/libz.so.1.2.3 /usr/share/doc/zlib-1.2.3 /usr/share/doc/zlib-1.2.3/ChangeLog /usr/share/doc/zlib-1.2.3/FAQ /usr/share/doc/zlib-1.2.3/README [root@serverX ~]# rpm -q httpd --scripts preinstall scriptlet (using /bin/sh): # Add the "apache" user getent group apache >/dev/null || groupadd -g 48 -r apache getent passwd apache >/dev/null || \ useradd -r -u 48 -g apache -s /sbin/nologin \ -d /var/www -c "Apache" apache exit 0 postinstall scriptlet (using /bin/sh): # Register the httpd service /sbin/chkconfig --add httpd preuninstall scriptlet (using /bin/sh): if [ $1 = 0 ]; then /sbin/service httpd stop > /dev/null 2>&1 /sbin/chkconfig --del httpd fi posttrans scriptlet (using /bin/sh): /sbin/service httpd condrestart >/dev/null 2>&1 || :
Consulta e instalación de archivos de paquete: [root@serverX ~]# cd /net/instructor/var/ftp/pub/materials/ [root@serverX ~]# rpm -q -p wonderwidgets-1.0-4.x86_64.rpm -l /etc/wonderwidgets.conf /usr/bin/wonderwidgets /usr/share/doc/wonderwidgets-1.0 /usr/share/doc/wonderwidgets-1.0/README.txt [root@serverX ~]# rpm -q -p wonderwidgets-1.0-4.x86_64.rpm -i Name : wonderwidgets Relocations: (not relocatable) Version : 1.0 Vendor: Red Hat, Inc. Release : 4 Build Date: Fri 03 Dec 2010 05:42:55 AM EST Install Date: (not installed) Build Host: station166.rosemont.lan Group : GLS/Applications Source RPM: wonderwidgets-1.0-4.src.rpm Size : 4849 License: GPL Signature : (none) Summary : Demonstration package for use in GLS training. Description : A demonstration package that installs an executable, and a config file. [root@serverX ~]# rpm -q -p wonderwidgets-1.0-4.x86_64.rpm -c /etc/wonderwidgets.conf [root@serverX ~]# rpm -q -p wonderwidgets-1.0-4.x86_64.rpm -d /usr/share/doc/wonderwidgets-1.0/README.txt [root@serverX ~]# yum localinstall wonderwidgets-1.0-4.x86_64.rpm ... Package wonderwidgets-1.0-4.x86_64.rpm is not signed [root@serverX ~]# yum localinstall --nogpgcheck wonderwidgets-1.0-4.x86_64.rpm [root@serverX ~]# rpm -q wonderwidgets wonderwidgets-1.0-4.x86_64
Uso de YUM para instalar archivos de paquete locales yum localinstall PACKAGEFILE.rpm se puede usar para instalar archivos de paquete directamente. Automáticamente, descarga todas las dependencias que tiene el paquete de RHN y los repositorios yum configurados. Generalmente, los paquetes están firmados digitalmente
194
RH135-6-es-2-20110131
Uso de YUM para instalar archivos de paquete locales
para garantizar que son legítimos; si el paquete no está firmado con una llave de confianza de su sistema, será rechazado. La opción --nogpgcheck puede deshabilitar la comprobación de firmas si usted está seguro de que el paquete es legítimo.
nota rpm -ivh PACKAGEFILE.rpm también se puede usar para instalar archivos de paquete. Sin embargo, yum ayuda a conservar un historial de transacciones de yum (consulte yum history).
Importante Tenga cuidado al instalar paquetes de terceros, no sólo por el software que pueden instalar, sino también porque el RPM puede ejecutar scripts arbitrarios como root, como parte del proceso de instalación.
Los archivos de paquete del RPM son principalmente archivos cpio. El comando cpio es una herramienta de archivado como zip o tar, pero se diferencia en que lee la lista de archivos que se archivarán desde STDIN en lugar de como argumentos de la línea de comando. Canalice los resultados de rpm2cpio PACKAGEFILE.rpm en cpio -id, y extraerá todos los archivos almacenados en el RPM en el directorio actual.
Referencias Red Hat Enterprise Linux Deployment Guide • Sección 3.2: Uso de RPM Páginas del manual: rpm(8), repoquery(1), rpm2cpio(8)
RH135-6-es-2-20110131
195
Capítulo 13. Instalación y administración de software
Práctica Ejercicio
Manipulación de software de terceros Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. En este ejercicio, recopilará información acerca de un paquete de terceros, extraerá los archivos de este y lo instalará completo en el sistema desktopX. 1.
Descargue wonderwidgets-1.0-4.x86_64.rpm de http://instructor/pub/materials.
2.
¿Qué archivos contiene?
3.
¿Qué scripts contiene?
4.
¿Cuánto espacio en disco usará al instalarlo?
5.
Use yum localinstall para instalar el paquete.
196
RH135-6-es-2-20110131
Uso de repositorios YUM de terceros
Uso de repositorios YUM de terceros Los repositorios de terceros son directorios accesibles desde la red de archivos de paquete de software a los que se puede acceder a través de yum; no son provistos por Red Hat Network. Los repositorios YUM son usados por distribuidores de software que no son de Red Hat o por colecciones pequeñas de paquetes locales. (Por ejemplo, Adobe ofrece parte de su software libre a Linux a través de un repositorio YUM). El servidor del salón de clases instructor aloja repositorios YUM para esta clase. Coloque un archivo en el directorio /etc/yum.repos.d/ para habilitar el soporte para un nuevo repositorio de terceros. Los archivos de configuración del repositorio deben finalizar en .repo. La definición de repositorio contiene la URL del repositorio, un nombre, si se debe usar GPG para comprobar las firmas de paquete y, en ese caso, la URL que apunta a la llave GPG de confianza.
Ejemplos de archivos de configuración /etc/ yum.repos.d/*.repo: Este es un ejemplo con un solo repositorio, con comprobaciones de seguridad de paquetes descargados deshabilitadas: [GLS] name=Instructor GLS Repository baseurl=ftp://instructor.example.com/pub/gls gpgcheck=0
Este es un ejemplo con varias referencias de repositorios en un solo archivo: [base] name=Instructor Server Repository baseurl=http://instructor.example.com/pub/rhel6/dvd gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release # Optional rhel6 [optional] name=Instructor Optional Repository baseurl=http://instructor.example.com/pub/rhel6/Optional gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [client] name=Instructor Client Repository baseurl=http://instructor.example.com/pub/rhel6/Client gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release enabled=0 [kernel-extras] name=Instructor Kernel Extras Repository baseurl=http://instructor.example.com/pub/rhel6/Kernel-Extras gpgcheck=1
RH135-6-es-2-20110131
197
Capítulo 13. Instalación y administración de software
nota Tenga en cuenta que algunos repositorios, como EPEL (Paquetes extras para Enterprise Linux), proporcionan este archivo de configuración como parte de un paquete RPM que se puede descargar de Internet e instalar con yum localinstall.
Instalación de paquete del repositorio EPEL de Red Hat Enterprise Linux 6: [root@serverX ~]# rpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEYEPEL-6 [root@serverX ~]# yum install http://download.fedora.redhat.com/pub/epel/beta/6/x86_64/ epel-release-6-5.noarch.rpm [root@serverX ~]# cat /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [epel-debuginfo] name=Extra Packages for Enterprise Linux 6 - $basearch - Debug #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 gpgcheck=1 [epel-source] name=Extra Packages for Enterprise Linux 6 - $basearch - Source #baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch failovermethod=priority enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 gpgcheck=1
Importante Instale la llave GPG de RPM antes de instalar los paquetes firmados. Esto comprobará que el paquete pertenezca a una llave que usted haya importado. De lo contrario, yum le advertirá que le falta la llave. (Puede usar la opción --nogpgcheck para ignorar las llaves GPG que faltan, pero esto podría ocasionar que se instalen paquetes inseguros o manipulados en el sistema).
198
RH135-6-es-2-20110131
Ejemplos de archivos de configuración /etc/yum.repos.d/*.repo:
Referencias Red Hat Enterprise Linux Deployment Guide • Sección 1.3: Configuración de YUM y repositorios YUM Páginas del manual: yum(1), yum.conf(5)
RH135-6-es-2-20110131
199
Capítulo 13. Instalación y administración de software
Práctica Ejercicio
Uso de repositorios YUM Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Configurará su servidor para usar un repositorio yum aparte para obtener actualizaciones y para actualizar su máquina. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
Cree el archivo /etc/yum.repos.d/errata.repo, para habilitar el repositorio “Actualizaciones” que se encuentra en la máquina instructor. Este debe acceder al contenido que se encuentra en esta URL: ftp://instructor.example.com/pub/rhel6/Errata.
2.
Actualice todo software relevante provisto por el repositorio usando yum update.
200
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Caso de estudio
Actualizar e instalar software Antes de comenzar... Ejecute lab-setup-server en desktopX para preparar serverX para el ejercicio. Tiene que administrar un nuevo servidor, serverX, con requisitos de software muy específicos. Debe tener instaladas las últimas versiones de los siguientes paquetes: kernel (paquete existente con una actualización) xsane-gimp (paquete nuevo) bzip2 (paquete actualizado) Por razones de seguridad, no debe tener instalado el paquete xinetd. No instale todas las actualizaciones. Instale solamente las actualizaciones para los paquetes enumerados arriba, si están disponibles. Los paquetes actualizados se pueden encontrar en la siguiente URL: ftp:// instructor.example.com/pub/rhel6/Errata. Cuando esté listo para revisar su trabajo, ejecute lab-grade-packages-2 en serverX. ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
RH135-6-es-2-20110131
201
Capítulo 13. Instalación y administración de software
Notas personales
202
RH135-6-es-2-20110131
Prueba de criterios
Resumen de la unidad Uso de yum En esta sección, aprendió a: • Enumerar los paquetes por nombre, palabra clave o archivo • Obtener la versión y la descripción de un paquete • Instalar, actualizar y quitar paquetes con yum . Administración de grupos de componentes YUM En esta sección, aprendió a: • Enumerar los grupos de paquetes disponibles. • Mostrar los paquetes en un grupo de paquetes. • Instalar un grupo de paquetes mediante el uso de yum. . Manipulación de software de terceros En esta sección, aprendió a: • Consultar paquetes de terceros para archivos antes de la instalación • Consultar información interna de los paquetes RPM . Uso de repositorios YUM de terceros En esta sección, aprendió a: • Administrar archivos de definición de repositorio en /etc/yum.repos.d/ .
RH135-6-es-2-20110131
203
204
UNIDAD CATORCE
ADMINISTRACIÓN DE SERVICIOS INSTALADOS Introducción Temas tratados en esta unidad: • Administrar inicio del servicio • Verificar servicio
RH135-6-es-2-20110131
205
Capítulo 14. Administración de servicios instalados
Administrar servicios Los demonios son procesos que esperan o se ejecutan en segundo plano y realizan varias tareas. Generalmente, los demonios se inician automáticamente al momento del arranque y continúan ejecutándose hasta que se apague el sistema o sean detenidos manualmente. Por convención, los nombres de muchos programas demonios finalizan con la letra "d". Los demonios son administrados por scripts de servicio, que se mantiene en el directorio /etc/ rc.d/init.d/. Los scripts de servicio, en general, se solicitan con un argumento startstop, restart, status o reload. La forma más sencilla de ejecutar scripts de servicio es usando el comando service. Los servicios se habilitan (se configuran para que se inicien automáticamente al momento del arranque) con chkconfig service on. Los servicios se se deshabilitan (se configuran para que no se inicien automáticamente al momento del arranque) con chkconfig service off. También es posible tener un control más sofisticado respecto de si un servicio está activo o inactivo en niveles de ejecución particulares. Sin argumentos, chkconfig enumera la configuración actual de todos los servicios. Los niveles de ejecución en los que un servicio está habilitado se pueden observar con chkconfig --list service. La ejecución del comando chkconfig no afecta de modo inmediato el estado de un demonio iniciado desde un script de servicio.
nota Los demonios son procesos en segundo plano que hacen tareas. Un script de servicio puede iniciar uno o más demonios, pero los scripts de servicio pueden, en cambio, hacer un cambio de una vez en el estado del sistema (por ejemplo, configurar interfaces de red) que no implica dejar un proceso demonio en ejecución después de esto. Los scripts network y iptables son ejemplos de este segundo tipo de script de servicio.
Instalación de servicios nuevos ¿Qué comando se usa generalmente para realizar cada uno de estos pasos para implementar un servicio nuevo en un sistema Red Hat Enterprise Linux?
• Instalar el software: • Iniciar el servicio: • Habilitar el servicio durante el momento de arranque: • Probar los servicios: Esto se tratará en las siguientes páginas.
206
RH135-6-es-2-20110131
Administrar servicios
Referencias Red Hat Enterprise Linux Deployment Guide • Capítulo 7: Control del acceso a los servicios Páginas del manual: service(8), chkconfig(8)
RH135-6-es-2-20110131
207
Capítulo 14. Administración de servicios instalados
Confirmar disponibilidad del servicio Diagnóstico de problemas de servicio de red Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. [root@serverX ~]# service httpd restart
Hemos reiniciado nuestro servicio httpd. ¿Cómo podemos confirmar que esté funcionando?
Suponiendo que el reinicio falle, a continuación se muestran la revisiones que puede intentar para diagnosticar el problema. Cuáles son los comandos que mostrarían lo siguiente: 1.
¿El demonio se está ejecutando?
Si el demonio no se está ejecutando, ¿cuáles son los pasos siguientes que podría seguir? a.
b.
2.
¿El demonio se ha enlazado a los puertos correctos?
Si el demonio se está ejecutando, pero no está en modo de escucha en el puerto correcto, ¿cuáles son los pasos siguientes que podría seguir? a.
b.
208
RH135-6-es-2-20110131
Administrar servicios
3.
¿Un cliente externo puede conectarse al puerto?
Si el demonio se está ejecutando y está enlazado al puerto correcto, pero los clientes externos no pueden conectarse, ¿cuál es el probable candidato? a.
Use este espacio para sus notas.
Referencias Páginas del manual: nc(1), lsof(8)
RH135-6-es-2-20110131
209
Capítulo 14. Administración de servicios instalados
Prueba
Prueba de criterios Ejercicio
Implementar un servidor FTP Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Instalar, iniciar, habilitar y probar el servicio FTP. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
Instalar el software del servidor FTP, que está distribuido como el paquete vsftpd.
2.
Inicie el servicio relacionado.
3.
Configure el servicio para que se inicie automáticamente al inicio.
4.
Desde su estación de trabajo, use el cliente lftp para conectar su servidor y verificar que puede recibir datos de este.
5.
Aun si su servicio se está ejecutando satisfactoriamente, responda las preguntas a continuación sobre solución de problemas para confirmar que el servicio se haya implementado correctamente. • ¿El demonio se está ejecutando? • ¿El demonio se enlazó al puerto correcto (TCP puerto 21)? • ¿Un cliente externo puede conectarse al puerto?
210
RH135-6-es-2-20110131
Administrar servicios
Notas personales
RH135-6-es-2-20110131
211
Capítulo 14. Administración de servicios instalados
Resumen de la unidad Administrar servicios En esta sección, aprendió a: • Iniciar y suspender servicios • Habilitar y deshabilitar el inicio automático de servicios • Enumerar los servicios que se inician automáticamente durante el proceso de arranque . Confirmar disponibilidad del servicio En esta sección, aprendió a: • Verificar la conectividad a un servicio • Solucionar problemas de disponibilidad de servicio .
212
RH135-6-es-2-20110131
UNIDAD QUINCE
ANÁLISIS Y ALMACENAMIENTO DE REGISTROS Introducción Temas tratados en esta unidad: • Destinos de registros del sistema • Informes de resumen de registro • Redirigir informes de registro
RH135-6-es-2-20110131
213
Capítulo 15. Análisis y almacenamiento de registros
Determinar destinos de registros Muchos programas usan un protocolo estándar para enviar mensajes a rsyslogd. La descripción de cada mensaje está determinada por un recurso (tipo de mensaje) y una gravedad (grado de importancia). Los nombres de los recursos disponibles y los niveles de gravedad están estandarizados. El archivo /etc/rsyslog.conf utiliza el recurso y la gravedad de un mensaje de registro para determinar a dónde se debe enviar (a un archivo de registro, por ejemplo). El archivo rsyslog.conf está documentado en la página del manual rsyslog.conf(5) y otros documentos HTML detallados ubicados en /usr/share/doc/rsyslog-*/manual.html. En la sección #### RULES #### de /etc/rsyslog.conf, se incluyen directivas que definen dónde se almacenan los mensajes de registro. En el lado izquierdo de cada línea, se indican el recurso y la gravedad del mensaje de registro que se corresponde con la directiva. En el lado derecho de cada línea, se indica en qué archivo se debe guardar el mensaje de registro. Tenga en cuenta que, generalmente, los mensajes de registro se guardan en archivos ubicados en el directorio /var/ log.
Ejemplo de un archivo rsyslog.conf #### MODULES #### $ModLoad imuxsock.so command) $ModLoad imklog.so #$ModLoad immark.so
# provides support for local system logging (e.g. via logger # provides kernel logging support (previously done by rklogd) # provides --MARK-- message capability
# Provides UDP syslog reception #$ModLoad imudp.so #$UDPServerRun 514 # Provides TCP syslog reception #$ModLoad imtcp.so #$InputTCPServerRun 514
#### GLOBAL DIRECTIVES #### # Use default timestamp format $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #### RULES #### # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.*
/dev/console
# Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none
/var/log/messages
# The authpriv file has restricted access. authpriv.*
/var/log/secure
# Log all the mail messages in one place. mail.*
-/var/log/maillog
214
RH135-6-es-2-20110131
# Log cron stuff cron.*
/var/log/cron
# Everybody gets emergency messages *.emerg
*
# Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.*
/var/log/boot.log
Archivos de registro predeterminados Escriba el nombre del archivo de registro al revisar el contenido de /etc/rsyslog.conf en serverX. 1.
Todos los mensajes relacionados con autenticaciones van a .
2.
Todo lo relacionado con el correo electrónico va a .
3.
Los mensajes relacionados con cron van a .
4.
Todos los otros mensajes enviados con prioridad info o mayor se guardan en .
Rotación de Archivos de Registro • Los archivos de registro se "rotan" para que no rellenen el sistema de archivos que contiene / var/log/. • Cuando se rota un archivo de registro, se le cambia el nombre con una extensión que indica la fecha en que se rotó: el archivo /var/log/messages anterior puede pasar a ser /var/log/ messages-20101030 si se rota el 30 de octubre de 2010. • Una vez que se rotó el archivo de registro anterior, se crea un nuevo archivo de registro y se notifica al servicio que escribe en este. • Después de una determinada cantidad de rotaciones (habitualmente, después de cuatro semanas), el archivo de registro anterior se descarta para conservar espacio en disco. • Una tarea de cron ejecuta el programa de rotación de archivos de registros a diario para verificar si es necesario rotar algún registro. • La mayoría de los archivos de registro se rotan semanalmente, pero el programa de rotación de archivos de registros rota algunos más rápido o más lento, o cuando alcanzan un tamaño determinado.
RH135-6-es-2-20110131
215
Capítulo 15. Análisis y almacenamiento de registros
Referencias Manual de rsyslog • /usr/share/doc/rsyslog-*/manual.html Páginas del manual: rsyslog.conf(5), logrotate(8)
216
RH135-6-es-2-20110131
Práctica Cuestionario
Revisar rsyslog Responda las siguientes preguntas: 1.
¿Cuáles son los dos campos que se utilizan para la coincidencia de eventos en archivos de registro?
2.
¿Cuál es el efecto de un comodín en el primer campo?
3.
¿Cuál es el efecto de un comodín en el segundo campo?
4.
¿Es posible registrar el mismo evento de registro en más de una bitácora?
RH135-6-es-2-20110131
217
Capítulo 15. Análisis y almacenamiento de registros
Buscar y analizar un informe de resumen de registro Puede instalarse un programa denominado logwatch que automáticamente analizará los archivos de registro estándares y enviará un correo electrónico de resumen a root. Una forma rápida de verificar el estado de un sistema es leer el informe de resumen de registro. logwatch se ejecuta como una tarea de cron diaria para generar el informe con los datos de registro importantes. Este informe se envía por correo electrónico a la cuenta local de usuario root, de forma predeterminada. Si desea generar un correo electrónico de LogWatch manualmente, simplemente ejecute logwatch.
Referencias /usr/share/doc/logwatch-* Página del manual: logwatch(8)
218
RH135-6-es-2-20110131
Práctica Lista de verificación de rendimiento
Analizar un informe de resumen de registro Determine la cantidad de espacio libre para el sistema de archivos de usuario root en función del último informe de LogWatch en serverX. Abra el correo electrónico de usuario root. Busque y lea el último informe de LogWatch. Si no existe un informe de LogWatch, ejecute el comando logwatch para generar uno manualmente. Registre la cantidad de espacio libre para el sistema de archivos /:
RH135-6-es-2-20110131
219
Capítulo 15. Análisis y almacenamiento de registros
Cambiar la dirección de correo electrónico de resumen de registro /etc/logwatch/conf/logwatch.conf es un archivo vacío que contiene la configuración local de LogWatch. Las opciones de configuración predeterminadas de todo el sistema para logwatch se guardan en /usr/share/logwatch/default.conf/logwatch.conf. A continuación, se muestra un fragmento: # Default Log Directory # All log-files are assumed to be given relative to this directory. LogDir = /var/log # You can override the default temp directory (/tmp) here TmpDir = /var/cache/logwatch # Default person to mail reports to. Can be a local account or a # complete email address. Variable Print should be set to No to # enable mail feature. MailTo = root # Default person to mail reports from. # complete email address. MailFrom = Logwatch
Can be a local account or a
# if set, the results will be saved in instead of mailed # or displayed. #Save = /tmp/logwatch # The default time range for the report... # The current choices are All, Today, Yesterday Range = yesterday # The default detail level for the report. # This can either be Low, Med, High or a number. # Low = 0 # Med = 5 # High = 10 Detail = Low
# The 'Service' option expects either the name of a filter # (in /usr/share/logwatch/scripts/services/*) or 'All'. # The default service(s) to report on. This should be left as All for # most people. Service = All # By default we assume that all Unix systems have sendmail or a sendmail-like system. # The mailer code Prints a header with To: From: and Subject:. mailer = "sendmail -t" # # # # #
By default the cron daemon generates daily logwatch report if you want to switch it off uncomment DailyReport tag. The implicit value is Yes DailyReport = No
Normalmente, edita el archivo en /etc, no los valores predeterminados en /usr/share. El elemento MailTo toma una dirección de correo electrónico para enviar informes de
220
RH135-6-es-2-20110131
Cambiar la dirección de correo electrónico de resumen de registro
LogWatch; de forma predeterminada, LogWatch usa root@localhost. Si desea que [email protected] reciba estos correos, agregue la siguiente línea al archivo / etc/logwatch/conf/logwatch.conf: MailTo = [email protected]
Referencias Página del manual: logwatch(8)
RH135-6-es-2-20110131
221
Capítulo 15. Análisis y almacenamiento de registros
Práctica Caso de estudio
Redirigir los correos electrónicos de resumen de registro Cambie la configuración de logwatch en serverX para enviar informes de resumen de registro al usuario student en lugar de al usuario root. Pregunta adicional: ¿Cómo enviaría los informes de logwatch tanto a student como a root? ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
222
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Caso de estudio
Mensajes de depuración de registro Su empresa desea incluir una bitácora de depuración en su servidor para analizarlo. Redirija todos los mensajes de nivel de depuración (y de prioridad superior) a un archivo con el nombre / var/log/debug.log. ¿Cómo trataría el caso de estudio descrito anteriormente? Tome nota de su proceso en el espacio provisto a continuación y después impleméntelo.
RH135-6-es-2-20110131
223
Capítulo 15. Análisis y almacenamiento de registros
Notas personales
224
RH135-6-es-2-20110131
Prueba de criterios
Resumen de la unidad Determinar destinos de registros En esta sección, aprendió a: • Administrar la distribución de registros de software con rsyslog • Proteger el sistema de archivos con logrotate . Buscar y analizar un informe de resumen de registro En esta sección, aprendió a: • Usar correos electrónicos de resumen de registro . Cambiar la dirección de correo electrónico de resumen de registro En esta sección, aprendió a: • Administrar la distribución de los resúmenes de registro .
RH135-6-es-2-20110131
225
226
UNIDAD DIECISÉIS
ADMINISTRACIÓN DE PROCESOS Introducción Temas tratados en esta unidad: • Control de procesos • Finalización de procesos • Programar tareas periódicas • Aplazar tareas
RH135-6-es-2-20110131
227
Capítulo 16. Administración de procesos
Control de procesos Un proceso es una instancia de un programa en ejecución. Se puede usar el comando ps para mostrar los procesos. De forma predeterminada, proporciona muy poca información útil. Sólo nos mostrará los procesos iniciados desde este terminal (y en una sesión X, cada ventana es un terminal...). Sin embargo, si se solicita ayuda, el comando ps presenta más modificadores de línea de comando de los que desee conocer y puede adaptarse para que proporcione información muy precisa. Cada uno tiene sus opciones favoritas, pero esto es lo que le recomendamos que use: # ps aux USER root root root rlocke rlocke rlocke ...
PID %CPU %MEM VSZ 1 0.0 0.0 4132 2 0.0 0.0 0 1469 0.0 0.0 63572 2348 0.0 0.0 107956 2711 0.0 0.1 150652 3507 2.0 0.0 107564
RSS 888 0 1232 1852 3628 1032
TTY ? ? ? pts/0 pts/1 pts/0
STAT Ss S Ss Ss S+ R+
START 17:44 17:44 17:45 17:46 17:54 19:00
TIME 0:01 0:00 0:00 0:00 0:00 0:00
COMMAND /sbin/init [kthreadd] /usr/sbin/sshd bash vim Processes.xml ps aux
La utilidad top muestra una lista de los procesos actuales que se actualiza automáticamente. Las teclas que se muestran a continuación se pueden usar en top para administrar lo que se muestra: • M: Ordenar los procesos por uso de memoria • P: Ordenar los procesos por uso de procesador • h: Mostrar ayuda acerca de otros comandos • q: Salir Al ordenar los procesos por uso de memoria, top considera a RES más importante que VIRT. RES es la cantidad de memoria física actualmente usada por un proceso (el "conjunto residente"). VIRT es el espacio en la asignación de memoria virtual actualmente que reserva el proceso para un posible uso y es mucho menos significativo. Incluso RES puede ser un cálculo excesivo, ya que incluye memoria compartida con otros procesos. En ps, VIRT está etiquetado como VSZ y RES es RSS.
Referencias Páginas del manual: ps(1), top(1)
228
RH135-6-es-2-20110131
Finalización y control de procesos
Finalización y control de procesos Los procesos se comunican con mensajes denominados señales. Las señales pueden llegar en cualquier momento (de forma asincrónica). Las señales no transportan información además del número de señal, que indica qué tipo de señal es. Los procesos manejan la señal de diferentes formas según el número de señal; el proceso puede salir, salir y volcar una copia de lo que está en la memoria, ignorar la señal o hacer alguna otra cosa. Más a menudo, cuando un usuario usa señales en un proceso, lo hace para finalizar el proceso (salir). Los eventos del sistema pueden enviar señales o un usuario puede enviar una señal arbitraria a un proceso con el comando kill.
Señales 1.
Se pueden usar top y kill para enviar una señal a un proceso.
2.
kill -l: muestra una tabla con los números de señal definidos.
3.
kill -9 3254: envía el número de señal 9 al proceso con PID 3254.
Número
Nombre
Función
1
HUP
Reinicializar un demonio
9
KILL
Forzar un proceso a finalizar de inmediato
15
TERM
Solicitar que un proceso finalice después de la limpieza (PREDETERMINADO)
Tabla 16.1. Señales útiles que debe conocer En la tabla anterior, marque con un círculo la señal que el programador no puede invalidar. (En la página del manual kill(1) se indicará esto en caso de que su instructor no lo haga).
Programación de procesos (niceness) • Un sistema Linux puede tener tantos·procesos en ejecución al mismo tiempo como el número total de unidades de procesamiento lógicas en sus CPU. • El sistema parece tener más procesos "en ejecución" al hacer que estos se turnen en unidades de procesamiento lógicas disponibles ("segmentación de tiempo"). • De forma predeterminada, cada proceso tiene el mismo acceso al tiempo de CPU. • El valor de niceness (amabilidad) de un proceso se puede modificar para ajustar la prioridad del proceso, al concederle una porción más grande o más pequeña del tiempo de CPU en comparación con otros procesos. • Niceness es un valor que va desde -20 (nada amable) hasta los valores predeterminados 0 a 19 (muy amable con los otros procesos). • Los usuarios pueden incrementar el valor de niceness de los procesos (para que requieran una porción menor de tiempo). • Sólo el usuario root puede disminuir el valor de niceness de los procesos (para que requieran una porción mayor de tiempo).
RH135-6-es-2-20110131
229
Capítulo 16. Administración de procesos
• Se pueden usar renice y top para cambiar el valor de niceness de un proceso en ejecución. • Se puede usar nice para determinar el valor de niceness de un nuevo proceso.
Importante Niceness solo afecta a la porción de tiempo de CPU que toma un proceso particular en relación a los otros procesos; si los otros procesos no se están ejecutando, un proceso con baja prioridad aún tomará todo el tiempo de CPU en una unidad de procesamiento lógica.
Taller
Uso de top para administrar procesos Sígalo junto con el instructor y use el espacio provisto a continuación para sus notas. 1.
Abra dos ventanas terminales desde una sesión gráfica en serverX.
2.
En la primera terminal, ejecute top.
3.
En la segunda terminal, ejecute: cat /dev/zero > /dev/null &
4.
Inicie cuatro (4) procesos cat más como se muestra arriba.
5.
En top, observe que cada uno de los procesos cat tiene una porción de tiempo de CPU casi igual.
6.
Mediante el uso de top, determine el PID de uno de los procesos cat.
7.
Use renice (ajustar niceness) en la segunda terminal para ajustar el valor de niceness del proceso a 10: renice -n 10 PID
8.
Elija un proceso cat diferente, y hágalo amable al usar renice para cambiar la prioridad a -5. Una vez más, observe la utilización relativa de CPU.
nota Deberá tener root privilegios para darle una prioridad más alta (valor de niceness más bajo).
9.
230
Use nice para iniciar un nuevo proceso cat con una prioridad más baja:
RH135-6-es-2-20110131
Finalización y control de procesos
nice -n 5 cat /dev/zero > /dev/null &
10. Use la tecla r (renice) en top para cambiar el valor de niceness de algunos de los procesos cat. 11.
Use la tecla k (kill) en top para eliminar todos los procesos cat.
Referencias Páginas del manual: kill(1), signal(7), nice(1), renice(1) y top(1)
RH135-6-es-2-20110131
231
Capítulo 16. Administración de procesos
Práctica Ejercicio
Administración de procesos Antes de comenzar... Ejecute lab-setup-processes en serverX para prepararse para el ejercicio. Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. 1.
Cambie la prioridad del proceso que está usando la mayoría de los recursos de CPU a 5.
2.
Finalice el proceso que está usando la mayoría de los recursos de memoria.
3.
Cuando esté listo para revisar su trabajo, ejecute lab-grade-processes en serverX.
4.
Una vez que haya completado satisfactoriamente el ejercicio y revisado su trabajo, ejecute lab-cleanup-processes en serverX para limpiar.
232
RH135-6-es-2-20110131
Administración de tareas periódicas
Administración de tareas periódicas El recurso cron administra programas que se deben ejecutar en un programa periódico y repetitivo. Un demonio, crond, se reactiva una vez por minuto para ejecutar las tareas que se hayan programado. Los usuarios programan las tareas personales con el comando crontab. El administrador de sistemas puede establecer tareas en los archivos de configuración de todo el sistema. Los usuarios individuales registran las tareas mediante el uso de un archivo de texto denominado archivo crontab ("tabla de cron"). crontab -l enumera el archivo. crontab -r elimina el archivo. crontab -e edita el archivo. El editor predeterminado que se usa con crontab -e es vi. El comando crontab -e abre un archivo crontab en blanco. La sintaxis de un archivo crontab está documentada en la página del manual crontab(5). Cada línea define una tarea programada o una "variable de entorno" que afecta la ejecución de la tarea. Las líneas de tarea tienen seis campos; los primeros cinco campos definen el minuto, la hora, el día del mes, el mes y el día de la semana; mientras que el resto de la línea especifica un comando para su ejecución.
Importante El comando se ejecuta cuando cualquier día del mes o día de la semana coinciden. (No solo se ejecuta cuando coincidan los dos criterios, que es lo piensa la mayoría).
El siguiente ejemplo muestra una entrada cron que ejecuta el comando ls cada minuto: *
*
*
*
*
ls
Minuto. Los valores válidos son de 0-59. Hora. Los valores válidos son de 0-23. 20 significa 8 p. m. Día del mes. Los valores válidos son de 1-31. Mes. Los valores válidos son de 1-12 o las primeras tres letras del nombre (p. ej., Jan [enero]) Día de la semana. Los valores válidos son de 0-7 (0 o 7 es domingo) o las primeras tres letras del nombre (p. ej., Sun [domingo]) Comando. Agregue el comando como escribiría la línea de comando. Utilice el punto y coma (;) para separar múltiples comandos que se ejecutarán al mismo tiempo. Agregue una línea por separado para ejecutar un comando en otro momento.
RH135-6-es-2-20110131
233
Capítulo 16. Administración de procesos
nota El carácter de comodín (*) se utiliza para hacer coincidir cada valor de la columna. Por ejemplo, en el trabajo cron ls arriba, el primer carácter representa todos los minutos. Otra forma de especificar esto es: 0,1,2,3,4,5...,58,59 o 0-59. Esto también se puede usar para especificar un paso. Por ejemplo, */5 en la primera columna coincidiría cada cinco valores: 0,5,10,15,20,25,30,35,40,45,50,55.
Sintaxis de cron
Cuándo se ejecutará el comando
05 * * * *
Cada hora, a los 5 minutos pasada la hora
05 02 * * *
Cada día a las 2:05 a. m.
30 08 01 * *
A las 8:30 p. m. el primer día de cada mes
00 07 25 12 *
El 25 de diciembre a las 7:00 a. m.
30 16 * * 5
Cada viernes a las 4:30 p. m.
*/5 * * * *
Cada 5 minutos (0, 5, 10... 45, 50, 55)
*/10 9-16 1,15 * *
Cada 10 minutos entre las 9 a. m. y 5 p. m. (no se ejecutará a las 5 p. m.; la última instancia se ejecutará a las 4:50 p. m.) en el primero y el quince del mes
0 0 1 jan 0
El 1 de enero a la medianoche y cada domingo de enero (no solo si el 1 de enero es domingo)
Tabla 16.2. Ejemplo de entradas de tabla de cron Las tareas que corresponden al sistema generalmente se incluyen en archivos crontab, en lugar de archivos personales. El archivo crontab principal es /etc/crontab y se puede editar normalmente (crontab -e no se utiliza). Una práctica más conveniente es crear un archivo crontab en un editor de textos normal y soltarlo en /etc/cron.d/ (esto evita problemas cuando se actualiza el paquete cronie; esto es lo que hacen los paquetes de sistema). Los archivos crontab /etc/cron.d/ presentan un campo adicional después de la especificación de la fecha que indica el usuario que ejecutará el trabajo. Los scripts que deben ejecutarse una vez al día, a la semana o al mes simplemente pueden configurarse como ejecutable y soltarse en el directorio correspondiente en /etc/cron. {daily,weekly,monthly}. Estas tareas son ejecutadas por el servicio anacron del sistema, configurado por /etc/anacrontab. En Red Hat Enterprise Linux6, anacron es un componente integrado de cron para administrar mejor estas tareas y garantizar que se ejecuten después del arranque, si es que no se ejecutaron porque la máquina estaba apagada. Para obtener más información, consulte la página del manual anacrontab(5).
Referencias Páginas del manual: crontab(1), crontab(5), anacrontab(5) y crontabs(4)
234
RH135-6-es-2-20110131
Administración de tareas periódicas
Práctica Cuestionario
Programación de cronie 1.
¿Cuándo se ejecutarán los siguientes trabajos? a.
b.
c.
d.
00 07 25 12 * /usr/local/bin/open_presents
*/5 * *
*
* /usr/local/bin/take_stats
07 03 *
*
* /sbin/service xend restart
30 16 *
*
5 /usr/local/bin/mail_checks
2.
Cree una entrada de cron que ejecutaría el script /usr/local/bin/vacuum_db una vez al mes, el primer día del mes.
3.
En la pregunta anterior. ¿qué ocurre si la máquina estaba inactiva debido a mantenimiento el primero de febrero? ¿Cuál sería la mejor forma de asegurarse de que la base de datos no opere 2 (o más) meses entre cada vaciado?
RH135-6-es-2-20110131
235
Capítulo 16. Administración de procesos
Programación de tareas aplazadas Actividad de lectura: El comando at Con comando at, puede especificar una tarea (denominada trabajo) para que se ejecute en un momento específico en el futuro. El trabajo podría ser una copia de seguridad de una vez, una revisión de su sistema o el envío de una notificación en un momento específico. Los trabajos, que podrían tardar mucho en completarse, también son buenos candidatos para el comando at. Para hacer esto, simplemente use at para configurar la tarea que se ejecutará en un minuto o dos en el futuro. Luego, puede salir de la sesión de manera segura, dado que la tarea se ejecuta sin conexión desde la sesión del intérprete de comandos. El comando at debe especificar cuándo se debe ejecutar la tarea. Esa especificación puede ser una hora o una fecha específicas (Monday, 10pm[lunes a las 10 p. m.] o July 15[15 de julio], por ejemplo). Puede ser relativo al tiempo actual (now +5 min[ahora + 5 min], now +3 days[ahora + 3 días] o 4pm +1 week[4 p. m. + 1 semana]). Al agregar otras opciones, puede lograr que el correo se envíe cuando la tarea finalice (-m) o leer la tarea desde un archivo (-f file) en lugar de desde la entrada estándar. Después de escribir la línea de comando at presione Enter y proceda a escribir los comandos que se incluirán en el trabajo. La tarea puede constar de múltiples comandos. Cuando termine de escribir los comandos que se ejecutarán, presione Ctrl+d en una línea sola para completar la tarea. Por ejemplo: [user@host ~]$ at now +2 min at> echo "Hello from the at command" > /dev/pts/2 at> Ctrl-D job 1 at 2011-01-28 00:38 [user@host ~]$
Una vez que un trabajo at está configurado para ejecutarse, puede enumerar los números y las horas del trabajo con el comando atq. Para ver los comandos incluidos en el trabajo, escriba at -c # (reemplace # con el número de trabajo que desea ver). Antes de que se ejecute un trabajo, puede eliminarlo (siempre que sea su trabajo o que usted sea el usuario root) al escribir el comando atrm #, donde # se reemplaza con el número del trabajo.
Instrucciones Lea la página del manual at(1) centrando su atención en los comandos at, atq, atrm; luego responda las preguntas que se encuentran a continuación. 1.
¿Qué función ejecuta el comando at?
2.
¿Cuál es la sintaxis del comando at?
3.
¿Cómo expresaría las siguientes especificaciones de tiempo para el comando at? • ¿Para ejecutar un trabajo a las 4:00 p. m. en tres días a partir de ahora?
236
RH135-6-es-2-20110131
Instrucciones
• ¿Para ejecutar un trabajo a las 10:00 a. m. el próximo 31 de julio?
• ¿Para ejecutar un trabajo a la 1:00 a. m., mañana?
4.
¿Qué función ejecuta el comando atq?
5.
¿Cuál es el formato de la salida del comando atq?
6.
¿Qué función ejecuta el comando atrm?
7.
¿Cuál es la sintaxis del comando atrm?
Referencias Página del manual: at(1)
RH135-6-es-2-20110131
237
Capítulo 16. Administración de procesos
Práctica Lista de verificación de rendimiento
Programación de tareas aplazadas Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. Determine la hora del sistema actual. Programe el comando who interactivamente para que se ejecute 1 minuto en el futuro. Mientras espera que el comando at se complete, cree un archivo de texto simple que contenga el comando cal. Configúrelo para que pueda ejecutarse. Programe el comando creado arriba para que se ejecute a la hora del té, hoy y mañana. Cambie de lugar con un compañero para realizar los dos pasos siguientes. • Use atq para confirmar las tareas pendientes. • Use atrm para quitar la tarea programada para la hora del té de mañana. Vuelva a cambiar de lugar y revise su correo para confirmar que el comando who original se haya ejecutado.
238
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Ejercicio
Administración de procesos Antes de comenzar... Ejecute manage_processes_start en serverX para prepararse para el ejercicio. Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
Después de ejecutar el comando manage_processes_start, serverX debe estar muy lerdo.
2.
Determine qué proceso está usando una cantidad excesiva de memoria y finalícelo.
3.
Determine el proceso que está usando una cantidad excesiva de memoria de CPU y cambie el valor de niceness a 15.
4.
Cree un trabajo de cron de sistema que cada media hora reajuste todos los procesos que pertenecen al usuario elvis a un valor de niceness de 10. Sugerencia: Use la página del manual renice(1) para determinar la opción para ajustar todos los procesos del usuario.
5.
Registre un trabajo para que se ejecute una vez a las 3:00 a. m., que ejecute el comando ps aux.
RH135-6-es-2-20110131
239
Capítulo 16. Administración de procesos
Notas personales
240
RH135-6-es-2-20110131
Prueba de criterios
Resumen de la unidad Control de procesos En esta sección, aprendió a: • Identificar los procesos que consumen la mayoría de los recursos de CPU . Finalización y control de procesos En esta sección, aprendió a: • Finalizar procesos • Cambiar la prioridad de un proceso existente • Iniciar un proceso con una prioridad no predeterminada . Administración de tareas periódicas En esta sección, aprendió a: • Programar tareas periódicas mediante el uso de cron . Programación de tareas aplazadas En esta sección, aprendió a: • Programar una tarea a ejecutarse una sola vez mediante el uso de at • Enumerar y eliminar tareas a ejecutarse una sola vez pendientes .
RH135-6-es-2-20110131
241
242
UNIDAD DIECISIETE
AJUSTE Y MANTENIMIENTO DEL KERNEL Introducción Temas tratados en esta unidad: • Arquitecturas compatibles • Módulos del kernel • Parámetros del kernel • Actualizaciones del kernel
RH135-6-es-2-20110131
243
Capítulo 17. Ajuste y mantenimiento del kernel
Arquitecturas compatibles e identificación del kernel Como la interfaz entre programas de usuarios y el hardware de sistemas, el kernel tiene un rol principal en asegurar que Red Hat Enterprise Linux pueda ser usado en una amplia variedad de entornos de hardware físicos y virtuales.
Arquitecturas admitidas por Red Hat Enterprise Linux 6 Red Hat Enterprise Linux 6 es compatible para ser ejecutado directamente en cuatro arquitecturas de procesadores: • Intel y AMD de 64 bits x86-64 • Intel y AMD de 32 bits x86 • IBM POWER (POWER6 de 64 bit o superior) • IBM System z (System z9 o superior) Esta clase se da en máquinas que utilizan una arquitectura Intel y AMD de 64 bit x86-64 (también conocida como AMD64 e Intel 64).
Red Hat Enterprise Linux 6 y virtualización Red Hat Enterprise Linux 6 compatible como guest virtual Red Hat Enterprise Linux 6 es compatible cuando se ejecuta como un guest virtual en los siguientes hipervisores: • KVM en Red Hat Enterprise Linux 5 y 6 (x86-64) • Xen en Red Hat Enterprise Linux 5 (x86 y x86-64, paravirtualizado y completamente virtualizado) • VMware ESX Server y VMware ESXi Server • Microsoft Windows Server 2008 Hyper-V Esto significa que Red Hat Enterprise Linux en estas plataformas de virtualización está certificado y es compatible independientemente del hardware físico subyacente (aparte de cualquier transferencia de hardware). Observe que Red Hat admite el sistema operativo de guest. La compatibilidad directa para una plataforma virtualizada viene del proveedor respectivo. Consulte http://hardware.redhat.com/ para obtener más detalles sobre los productos y versiones verificados, y http://www.redhat.com/rhel/server/ virtualization_support.html para obtener más información.
Compatibilidad de Red Hat Enterprise Linux 6 en particiones de hardware Red Hat Enterprise Linux también es compatible en particiones de hardware y soluciones de virtualización como
244
RH135-6-es-2-20110131
Red Hat Enterprise Linux 6 y virtualización
• IBM POWER y System z • Fujitsu PRIMEQUEST Estas están certificadas por su compatibilidad con el hardware físico, no como una característica genérica en hardware no certificado. Vea http://hardware.redhat.com/ para obtener más detalles.
RH135-6-es-2-20110131
245
Capítulo 17. Ajuste y mantenimiento del kernel
Compatibilidad de Red Hat Enterprise Linux 6 en la nube pública Para implementaciones de computación en la nube internas, se aplica la compatibilidad estándar. Red Hat además certifica la ejecución de Red Hat Enterprise Linux en la plataforma de varios proveedores de computación en la nube pública como parte de nuestro programa de socios en la nube (Cloud Partner Program). Al momento de escribir, los proveedores de la nube certificados incluían: • Amazon EC2 (http://www.redhat.com/solutions/cloud/amazon/) • IBM (http://www.ibm.com/ibm/cloud/) • Savvis (http://www.savvis.com/)
Límites del sistema Los límites del sistema admitido dependen de la arquitectura y la variante y versión del producto implementadas. La URL http://www.redhat.com/rhel/compare se actualiza a medida que se introducen nuevas versiones y se habilita nuevo hardware.
Identificación del kernel en ejecución 1.
cat /etc/redhat-release: versión de Red Hat Enterprise Linux instalada
2.
uname -r: versión de kernel actualmente en ejecución
3.
yum list installed kernel\*: versiones de kernel instaladas
4. uname -m o arch: arquitectura de procesador actualmente en ejecución Ocasionalmente, el kernel emite mensajes de registro. Estos mensajes se registran en el archivo /var/log/messages, con etiqueta de servicio de kernel
Referencias Comparación entre las versiones de escritorio y servidor de Red Hat http://www.redhat.com/rhel/compare/ Compatibilidad de virtualización en Red Hat Enterprise Linux http://www.redhat.com/rhel/server/virtualization_support.html Catálogo de hardware de Red Hat http://hardware.redhat.com/ Programa de socios en la nube http://www.redhat.com/solutions/cloud/partners/ Páginas del manual: uname(1), arch(1)
246
RH135-6-es-2-20110131
Administración de los módulos del kernel
Administración de los módulos del kernel Los módulos del kernel son archivos de objetos, un código ejecutable que se puede conectar de manera dinámica al kernel de Linux mientras este se ejecuta para extender sus capacidades o proporcionar controladores de dispositivos. Los módulos del kernel cargables de manera dinámica son útiles porque permiten a Linux cargar solo componentes del kernel que son necesarios en un sistema particular en una configuración particular, y ahorra espacio de memoria y uso de recursos del sistema. Además permiten al kernel extenderse sin la necesidad de recompilarlo ni volver a arrancar el sistema.
Carga y descarga de módulos • La imagen del kernel central, cargada durante el proceso de arranque, se encuentra en / boot/vmlinuz-VERSION. • Si bien se pueden instalar varios kernels, sólo uno es el que actualmente está en ejecución. Para cambiar los kernels, se debe volver a arrancar el sistema. • Cada kernel incluye un grupo de módulos cargados dinámicamente, compatibles con ese kernel, que se guardan en /lib/modules/VERSION/. • Generalmente, los módulos se cargan o descargan a pedido, sin interacción del usuario (o del administrador). • Se puede crear una lista de los módulos actualmente cargados con lsmod. • En ocasiones, es posible que se deban cargar los módulos manualmente con modprobe MODULENAME. • Los módulos que ya no se utilizan se pueden quitar con modprobe -r MODULENAME.
Parámetros de los módulos • Muchos módulos aceptan parámetros que pueden especificarse mientras se carga el módulo. • Con el comando modinfo, se muestran los parámetros que admite un módulo. • Los parámetros se especifican como pares name=value en la línea de comando modprobe. # modprobe ecryptfs ecryptfs_verbosity=1
• Los parámetros se pueden aplicar automáticamente mediante la configuración de las opciones en un archivo de configuración /etc/modprobe.d/local.conf: options ecryptfs ecryptfs_verbosity=1
RH135-6-es-2-20110131
247
Capítulo 17. Ajuste y mantenimiento del kernel
Referencias Red Hat Enterprise Linux Deployment Guide • Capítulo 22: Trabajo con módulos del kernel Páginas del manual: lsmod(8), modprobe(8)
248
RH135-6-es-2-20110131
Administración de los módulos del kernel
Práctica Ejercicio
Carga de módulos y configuración de parámetros predeterminados Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. Algunas funciones del cortafuego basado en el kernel se implementan como módulos opcionales del kernel, como llevar a cabo un rastreo de conexiones en un servidor ftp. Se le ha solicitado que cargue el módulo del kernel nf_conntrack_ftp y que lo configure adecuadamente para un servidor FTP en modo de escucha en el puerto TCP 21 y el puerto 8021. Debe ejecutar los siguientes comandos en su serverX. 1.
Use el comando locate para asegurarse de que el módulo nf_conntrack_ftp sea compatible con su kernel.
2.
Cargue el módulo de seguimiento de conexión FTP.
3.
Asegúrese de que esté cargado.
4.
Descargue el módulo de seguimiento de conexión FTP.
5.
Asegúrese de que esté descargado.
6.
Además del puerto 21 estándar, usted planea ejecutar un servidor FTP en el puerto 8021 no estándar. Examine las opciones que podrían permitirle especificar los puertos no estándares.
7.
Configure un archivo /etc/modprobe.d/local.conf, que implementa esta opción una vez cargado.
RH135-6-es-2-20110131
249
Capítulo 17. Ajuste y mantenimiento del kernel
Especificación de parámetros de arranque del kernel Parámetros de la línea de comando del kernel • El kernel puede configurarse al pasarle parámetros de la línea de comando. • La línea de comando que se usa para iniciar su kernel actual puede examinarse en /proc/ cmdline. • Muchas opciones (pero no todas) de la línea de comando del kernel están documentadas en la página del manual bootparam(7). Los parámetros adicionales están documentados en el paquete kernel-doc, en el archivo /usr/share/doc/kernel-doc-2.6.32-*/ Documentation/kernel-parameters.txt. • Las opciones de la línea de comando se especifican en el archivo de configuración del gestor de arranque, /boot/grub/grub.conf. • Cualquier elemento no reconocido por el kernel se transfiere como argumento o variable de entorno al primer proceso.
Advertencia Asegúrese de comprender los probables efectos de un parámetro del kernel antes de configurarlo.
Use este espacio para sus notas.
Referencias Documentación del kernel: "Parámetros del kernel" /usr/share/doc/kernel-doc-2.6.32-*/Documentation/kernel-parameters.txt Página del manual: bootparams(7)
250
RH135-6-es-2-20110131
Administración de los módulos del kernel
Práctica Ejercicio
Modificación de la línea de comando del kernel Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. El dispositivo de bucle invertido se usa para montar archivos como si fueran dispositivos, lo cual es muy conveniente para acceder a las imágenes ISO, por ejemplo. De forma predeterminada, el kernel admite 8 dispositivos de bucle invertido. Modifique la línea de comando de kernel de su servidor remoto de modo que admita 32 en su lugar. Use su serverX para realizar los siguientes pasos. 1.
Enumere los dispositivos de bucle invertido en el directorio /dev. (Todos los dispositivos de bucle invertido se denominan loop*). ¿Cuántos hay? _______________
2.
Agregue el parámetro max_loop=32 a la línea de comando de kernel en /boot/grub/ grub.conf.
3.
Vuelva a arrancar su servidor.
4.
Confirme que el kernel haya arrancado con la línea de comando modificada.
5.
Enumere los dispositivos de bucle invertido en el directorio /dev. ¿Cuántos hay? _______________
RH135-6-es-2-20110131
251
Capítulo 17. Ajuste y mantenimiento del kernel
Actualización del kernel Demostración sobre la actualización de un kernel Complete los espacios en blanco a continuación mientras su instructor analiza los siguientes temas. 1.
¿Qué comando (familiar) realiza una actualización de kernel?
2.
Los kernels nuevos se ; no se actualizan. Como cada archivo que pertenece al paquete de kernels tiene versiones, o reside en un directorio con versiones, RPM requiere que se instalen versiones simultáneas.
3.
De forma predeterminada, al "actualizar" un kernel, yum mantendrá un total de versiones instaladas y automáticamente quitará cualquier versión anterior.
4.
Para usar el nuevo kernel, debe su máquina.
5.
Si bien la máquina volverá a arrancar automáticamente en el kernel actualizado, aún puede seleccionar un kernel en el menú del gestor de arranque GRUB.
6.
Si desea quitar un kernel manualmente, debe especificar no sólo el nombre del paquete (kernel), sino también el . Advertencia No intente ejecutar yum remove kernel sin especificar en detalle qué paquete del kernel se eliminará del sistema. El comando intentará eliminar todos los paquetes del kernel instalados en el sistema así como los paquetes que dependen del kernel. Esto dará como resultado un sistema roto y que no se puede volver a arrancar.
252
RH135-6-es-2-20110131
Administración de los módulos del kernel
Referencias Red Hat Enterprise Linux Deployment Guide • Capítulo 23: Actualización manual del Kernel Páginas del manual: lsmod(8), modprobe(8) Páginas del manual: yum(1), yum.conf(8)
RH135-6-es-2-20110131
253
Capítulo 17. Ajuste y mantenimiento del kernel
Notas personales
254
RH135-6-es-2-20110131
Administración de los módulos del kernel
Resumen de la unidad Arquitecturas compatibles e identificación del kernel En esta sección, aprendió a: • Analizar las arquitecturas de kernel compatibles y los límites • Determinar qué kernel se está ejecutando en el sistema . Administración de los módulos del kernel En esta sección, aprendió a: • Crear una lista de los módulos actuales cargados en el kernel • Cargar un módulo y sus dependencias • Quitar un módulo • Configurar de forma persistente un módulo para su carga con parámetros especificados • Buscar documentación acerca de un módulo . Especificación de parámetros de arranque del kernel En esta sección, aprendió a: • Agregar un argumento de línea de comando de kernel que persista cuando se vuelva a arrancar el sistema . Actualización del kernel En esta sección, aprendió a: • Actualizar un kernel compilado de Red Hat .
RH135-6-es-2-20110131
255
256
UNIDAD DIECIOCHO
TÉCNICAS DE RECUPERACIÓN DEL SISTEMA Introducción Temas tratados en esta unidad: • Proceso de arranque • Intérpretes de comandos de recuperación
RH135-6-es-2-20110131
257
Capítulo 18. Técnicas de recuperación del sistema
El proceso de arranque A continuación, se encuentra un diagrama simplificado del proceso de arranque de Red Hat Enterprise Linux 6, desde el encendido hasta el punto en que aparece un aviso de inicio de sesión en la pantalla. BIOS GRUB /boot/grub/grub.conf
kernel
init /etc/init/
“ on
rt st a
up” on
“r
u
e nl
ve
l”
rcS.conf
rc.conf
/etc/rc.d/rc.sysinit /etc/inittab
/etc/rc.d/rc /etc/rc.d/rc[0-6].d/
send “ runlevel” event
on
“ rc
”
st art -t t ys.conf
prefdm .conf
send “ rc” event
BIOS BIOS, o sistema de entrada/salida básico, es la interfaz de firmware incorporada al hardware x86/ x86-64 estándar que coloca al hardware en un estado conocido y prepara el sistema para cargar un sistema operativo.
¿Qué ocurre? • Detecta e inicializa el hardware. • Determina el dispositivo desde el cual se arranca el sistema.
¿Qué puede salir mal? • Configuraciones de BIOS incorrectas o extrañas • Ordenamiento de dispositivos de arranque incorrecto
¿Cómo se puede interrumpir o influenciar? • Presione una tecla específica del proveedor. • Use una utilidad de configuración específica del proveedor. • Por lo general, puede realizar una anulación de una sola vez del ordenamiento de arranque.
258
RH135-6-es-2-20110131
GRUB
GRUB El BIOS carga GRUB, el Gran Gestor de Arranque Unificado, que se utiliza para seleccionar e iniciar el sistema operativo, como ya lo hemos analizado.
¿Qué ocurre? • Carga el sistema de archivos RAM inicial ("initramfs") • Carga y ejecuta el kernel. • Proporciona la línea de comando de kernel.
¿Qué puede salir mal? • Configuración errónea del gestor de arranque • Imagen de kernel o initramfs incorrecto • Línea de comando de kernel incorrecta
¿Cómo se puede interrumpir o influenciar? • Elija un elemento de menú alternativo configurado previamente. • Puede usar "e" o "a" para seleccionar una imagen de kernel diferente o editar la línea de comando de kernel. • Edite la línea de comando de kernel para arrancar el sistema desde el modo de usuario single. • Arranque con init=/bin/bash.
Investigación y aprendizaje: GRUB Escriba las respuestas a cada una de las preguntas a continuación y remítase a la documentación disponible cuando sea necesario. 1.
¿Dónde podemos encontrar el arranque orientado y más específicamente, el archivo de configuración de GRUB?
2.
¿Dónde podemos encontrar información acerca de qué significan las opciones de configuración en ese archivo de configuración?
3.
¿Qué kernel arrancará de modo predeterminado (nombre de archivo)?
4.
¿Dónde pasa el sistema de archivos de usuario "root" al kernel y qué es el sistema de archivos de usuario "root"?
RH135-6-es-2-20110131
259
Capítulo 18. Técnicas de recuperación del sistema
5.
¿Cuál es la diferencia en relación con la directiva en las entradas de arranque grub.conf que se inicia con "root"? ¿Adónde apunta la línea "root" ?
6.
¿Cómo podemos restringir el acceso a las opciones interactivas del GRUB?
Kernel El kernel Linux es la parte principal del sistema operativo. Es responsable de administrar el acceso al hardware para los procesos de espacio de usuario. Los controladores y el hipervisor KVM son partes integradas del kernel.
¿Qué ocurre? • Detecta dispositivos de hardware. • Carga los controladores de dispositivo (módulos) para los dispositivos.
nota ¿Dónde obtiene el kernel los módulos para su carga durante el proceso de arranque? 1.
Al principio, usa el disco RAM inicial configurado para el kernel en /boot/grub/ grub.conf: /boot/initramfs-.img.
2.
Una vez montado el sistema de archivos de usuario root, usa /lib/modules/ /
• Monta el sistema de archivos en modo de sólo lectura. • Inicia el proceso inicial, init.
¿Qué puede salir mal? • Mala imagen del sistema de archivos RAM inicial • Sistema de archivos de root identificado erróneamente • Sistema de archivos de root dañado
¿Cómo se puede interrumpir o influenciar? • Generalmente, sólo mediante opciones de GRUB.
260
RH135-6-es-2-20110131
init y Upstart
init y Upstart El primer proceso de espacio de usuario que se inicia en el sistema es /sbin/init. El proceso init es responsable de iniciar todos los procesos restantes de espacio de usuario, directa o indirectamente.
¿Qué ocurre? • Una vez que el kernel está en ejecución, inicia init. El programa init es responsable de completar el proceso de arranque iniciando todos los otros procesos del sistema no relacionados con el kernel. Con Upstart, init inicia "trabajos" cuando ocurren varios "eventos", como cuando arranca el sistema, ingresamos a un nivel de ejecución, u otro trabajo de init se inicia o se detiene. Estos trabajos se almacenan como scripts en el directorio /etc/init/. Durante el proceso de arranque, el evento de inicio hace que init ejecute el trabajo /etc/init/rcS.conf, que: • Ejecuta /etc/rc.d/rc.sysinit para iniciar el LVM, montar y verificar los sistemas de archivos, configurar el reloj del sistema y realizar otras operaciones de verificación. • Busca en /etc/inittab para encontrar el nivel de ejecución. • Envía un evento a init indicándole que ingrese a ese nivel de ejecución. El evento del nivel de ejecución hace que init ejecute el trabajo /etc/init/rc.conf, que ejecuta el script /etc/rc.d/rc con el nivel de ejecución deseado como un argumento: • Ejemplo: rc.conf ejecuta rc 5, que ejecuta /etc/rc.d/rc5.d/K* stop y /etc/rc.d/ rc5.d/S* start. • Los scripts se ejecutan por orden numérico, primero los que contienen K y después los que contienen S. • Los scripts /etc/rc.d/rc5.d/ son enlaces simbólicos a los scripts usados por el servicio. • Que los enlaces comiencen con una K o una S depende de que el servicio se haya activado o desactivado, on u off, con chkconfig. Las versiones anteriores de Red Hat Enterprise Linux presentan una implementación un tanto distinta de init que funciona de forma diferente.
¿Qué puede salir mal? • /etc/fstab o /etc/crypttab alterado • Configuración errónea de servicio o red que hace que los servicios no respondan • Etc...
¿Cómo se puede interrumpir o influenciar? • Presione "Alt + Tab" del entorno gráfico para ver los mensajes de error. • Presione "I" (i mayúscula) durante el inicio del servicio para seleccionar los servicios de forma interactiva.
RH135-6-es-2-20110131
261
Capítulo 18. Técnicas de recuperación del sistema
nota Red Hat Enterprise Linux 5 y las versiones anteriores usaban una implementación diferente de init, SysVinit, que se controlaba por directivas en el archivo /etc/inittab. Sin embargo, el proceso de arranque básico y los scripts ejecutados por init eran similares.
nota Red Hat Enterprise Linux 6 admite sistemas que usan UEFI y UEFI Boot Manager para cargar el sistema operativo, en lugar de un BIOS y GRUB. Para obtener más información, consulte Red Hat Enterprise Linux Installation Guide.
Revisar los síntomas para la solución de problemas Síntomas
Posibles causas
No aparece un señal ni una pantalla de inicio del gestor de arranque
• El GRUB está mal configurado • El sector de arranque está dañado • Una configuración del BIOS, como el esquema de dirección del disco, se ha modificado desde que se escribió el sector de arranque
El kernel no se carga, o se carga parcialmente antes de que ocurra un panic
• Imagen del kernel dañado
El kernel se carga por completo, pero ocurre un panic o el kernel falla cuando intenta montar el sistema de archivos de usuario root y ejecutar /sbin/init
• El gestor de arranque está mal configurado
• El gestor de arranque le pasó los parámetros incorrectos al kernel
• /sbin/init está dañado o /etc/inittab está mal configurado • El sistema de archivos está dañado o no se puede montar
El kernel se carga por completo y /etc/rc.d/ rc.sysinit se inicia y luego se interrumpe
• /bin/bash falta o está dañado • Es posible que /etc/fstab tenga un error, el cual es evidente cuando los sistemas de archivos se montan o aparecen en fsck. • Sistemas de archivos que no son root dañados (debido a una falla en fsck)
262
RH135-6-es-2-20110131
Revisar los síntomas para la solución de problemas
Síntomas
Posibles causas
Errores de nivel de ejecución (generalmente en los servicios)
• Otro servicio requerido por un servicio con fallas no se configuró para un nivel de ejecución determinado • Errores de configuración específica de servicios
Tabla 18.1. Factores que debe verificar en el proceso de arranque
Referencias Red Hat Enterprise Linux Installation Guide • Apéndice técnico F: Proceso de arranque, init y apagado Red Hat Enterprise Linux Installation Guide • Apéndice técnico E: Gestor de arranque GRUB Red Hat Enterprise Linux Deployment Guide • Sección 23.6: Verificación del gestor de arranque Red Hat Enterprise Linux Deployment Guide • Capítulo 7: Control del acceso a los servicios Páginas del manual: init(8), event(5), init(5) /etc/inittab /boot/grub/grub.conf info grub
RH135-6-es-2-20110131
263
Capítulo 18. Técnicas de recuperación del sistema
Práctica Cuestionario
Términos del proceso de arranque Indique los nombres de los pasos para el proceso de arranque en cada definición 1.
: Firmware que se ejecuta al encender el equipo, habilita las características del hardware integrado y determina que el dispositivo arranque.
2.
: Programa cargado del dispositivo de arranque que determina que el ejecutable del sistema operativo principal se cargue.
3.
: Ejecutable del sistema operativo principal responsable de coordinar el acceso del software a los recursos de hardware.
4.
: Primer proceso de Linux iniciado; en última instancia inicia todos los otros procesos.
264
RH135-6-es-2-20110131
Revisar los síntomas para la solución de problemas
Práctica Ejercicio para ordenar
Archivos del proceso de arranque Para cada uno de los nombres de archivo o directorio indicados a continuación, escriba el número de la definición correspondiente indicado en la lista debajo. /boot/grub/grub.conf /etc/inittab /etc/init/ /etc/init/rcS.conf /etc/rc.d/rc.sysinit /etc/init/rc.conf /etc/rc.d/rc5.d/ /etc/init/start-ttys.conf /etc/init/prefdm.conf
1.
Script para inicializar el sistema (incluye montaje de sistemas de archivos locales)
2.
Archivo que contiene el nivel de ejecución predeterminado
3.
Inicia las consolas virtuales basadas en texto 5 o 6
4. Tarea de init responsable de iniciar los servicios basados en System V. 5.
Contiene las instrucciones de configuración del gestor de arranque.
6. Directorio que contiene tareas de init. 7.
Contiene enlaces a los scripts de los servicios de System V para que se inicien o detengan al entrar al nivel de ejecución 5.
8. Inicia instrucciones gráficas al inicio de sesión. 9.
Tarea de init para ejecutar el script de inicialización del sistema y trabajo de inicio para iniciar los servicios de System V.
RH135-6-es-2-20110131
265
Capítulo 18. Técnicas de recuperación del sistema
Reparación de problemas de arranque Al momento de arranque, si el sistema tiene una dificultad para montar correctamente sistemas de archivos, el proceso de arranque se puede interrumpir para reparar el problema. En este caso, el sistema caerá automáticamente a un intérprete de comandos sulogin para permitir las reparaciones como root. El intérprete de comandos sulogin no se el mismo que el del nivel de ejecución 1 ni el del modo de usuario único. En este aviso, si los sistemas de archivos se montan, se montan como solo lectura y el sistema no puede arrancar completamente en ningún nivel de ejecución estándar. Los sistemas de archivos no se pueden montar más comúnmente porque el sistema de archivos se encuentra en un estado inconsistente debido a una rotura del sistema. Pero existen otros motivos por los que no se pueden montar. Por ejemplo, el administrador de sistemas puede haber cambiado la configuración del sistema de archivos en el sistema y, un error o error ortográfico en /etc/fstab pueden apuntar a un dispositivo o sistema de archivos que no existe. Otra posibilidad es que el administrador do sistemas haya intentado montar un volumen físico de LVM o un dispositivo encriptado por error, en lugar del volumen lógico LVM o el dispositivo encriptado que contienen el sistema de archivos.
Reparación de sistemas de archivos dañados Durante el funcionamiento normal, el kernel conserva información de los sistemas de archivos a los que se accede con frecuencia en la memoria y sólo envía la información al disco periódicamente. Si un sistema de archivos deja de estar disponible de forma repentina (por ejemplo, debido a un corte de alimentación eléctrica o problemas de conectividad física), el sistema de archivos en el disco tendrá falta de coherencia. Si no se solucionan estos problemas, es probable que dañen los datos. El comando fsck intentará restablecer el sistema de archivos a un estado coherente. La garantía de fsck no es la recuperación total de los datos, sino la coherencia del sistema de archivos. Durante el arranque, los scripts de inicio automáticamente harán fsck en todos los sistemas de archivos (si están etiquetados en /etc/fstab). Los problemas menores se solucionarán sin interacción. Si la recuperación automática de un sistema de archivos podría ocasionar la pérdida de datos, el proceso de arranque mostrará al intérprete de comandos sulogin para permitir al administrador ejecutar fsck de forma interactiva.
Advertencia No ejecute fsck en un sistema de archivos montado con acceso de lectura-escritura bajo ninguna circunstancia. Esto probablemente ocasionaría daño al sistema de archivos y pérdida de datos.
1.
Desmonte el sistema de archivos /boot en /dev/vda1. [root@demo ~]# umount /dev/vda1
2.
266
Revise el sistema de archivos en /dev/vda1.
RH135-6-es-2-20110131
Reparación de sistemas de archivos dañados
[root@demo ~]# fsck /dev/vda1
3.
Vuelva a montar un sistema de archivos /boot. [root@demo ~[# mount /dev/vda1
Importante Mientras se ejecuta, es posible que fsck le pregunte si se deben hacer o no determinados cambios en el sistema de archivos. Normalmente, debe responder sí a todas las preguntas, porque fsck solicita aprobación para completar una reparación. Podría responder no solo si está haciendo una prueba para ver qué errores fsck busca o si sospecha que el hardware no está respondiendo a los comandos correctamente; ambos casos son poco comunes.
Advertencia La ejecución de fsck no se puede deshacer. La ejecución de fsck en algo que no contenga un sistema de archivos normal (como un volumen físico LVM) puede dañar el contenido del dispositivo, y ocasionar pérdida de datos. Elimine otras posibles causas del problema antes de usar fsck. Si el sistema de archivos informa errores porque un dispositivo de almacenamiento no está funcionando correctamente, fsck probablemente no resolverá el problema, y es posible que introduzca más errores si el dispositivo no funciona correctamente. (Por otra parte, en ese caso, los únicos otros recursos se restaurarán de la copia de seguridad a un nuevo dispositivo de almacenamiento o se enviarán al dispositivo que funciona incorrectamente para la recuperación de datos, en cuyo caso no deberá ejecutar fsck para evitar mayor riesgo de pérdida de datos.
RH135-6-es-2-20110131
267
Capítulo 18. Técnicas de recuperación del sistema
Taller
Reparación del fichero fstab roto con el intérprete de comandos sulogin Sígalo junto con el instructor y use el espacio provisto a continuación para sus notas. Realizará estos pasos en sus servidores virtuales: primero dividirá el archivo /etc/fstab y observará los síntomas resultantes (PROBAR), luego comprobará si hay errores de configuración (VERIFICAR) y, por último, corregirá el problema (REPARAR). 1.
Ejecute el script lab-setup-bootbreak-1 en serverX para dividir /etc/fstab y vuelva a arrancar el servidor. ¿Qué ocurre?
2.
Ingrese la contraseña del usuario root para obtener el intérprete de comandos sulogin.
3.
Vea el archivo /etc/fstab (use vim) ¿Cuáles son los seis campos? Dispositivo , Tipo de sistema de archivos, Opciones de montaje, Frecuencia de volcado, Orden de comprobación del sistema de archivos (fsck). Sugerencia: fstab para obtener detalles.
4.
Vuelva a montar el sistema de archivos del usuario root con acceso de lectura-escritura ¿Qué comando ejecuta esta función?
5.
Edite /etc/fstab para corregir el error.
6.
Ejecute mount -a para confirmar que no se produjeron errores.
7.
Vuelva a arrancar el sistema y confirme que arranca normalmente.
El intérprete de comandos sulogin: • El sistema pasa a un intérprete de comandos sulogin si encuentra problemas para acceder a un sistema de archivos en /etc/fstab. • En el intérprete de comandos sulogin, el sistema de archivos de usuarios root se monta con acceso de sólo lectura. • Si bien el intérprete de comandos sulogin puede recomendarlo, ejecutar fsck NO siempre es la opción preferida.
268
RH135-6-es-2-20110131
Reparación de sistemas de archivos dañados
Referencias Páginas del manual: fsck(8), fstab(5), sulogin(8)
RH135-6-es-2-20110131
269
Capítulo 18. Técnicas de recuperación del sistema
Práctica Cuestionario
Solución de problemas del proceso de arranque 1.
Si tiene problemas de daños en el sistema de archivos, la máquina arrancará en modo de .
2.
En el modo de mantenimiento, ejecute para solucionar los problemas de daños en el .
3.
En modo de mantenimiento, ejecute para marcar la partición / como de escritura.
270
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Ejercicio
Uso y protección del modo monousuario Realice los siguientes pasos con cuidado. Si tiene algún problema o alguna duda, consulte con su instructor. En este ejercicio, primero recuperará la contraseña del usuario root de su servidor virtual y luego implementará el Gran Gestor de Arranque Unificado (GRUB) para proteger la contraseña, a fin de que el sistema sea más seguro. 1.
Ejecute el script para encriptar su contraseña de usuario root y vuelva a arrancar. Ejecute lab-setup-bootbreak-4 desde serverX
2.
Luego de verificar que ya no puede iniciar sesión como usuario root, vuelva a arrancar el sistema para restablecer la contraseña redhat nuevamente usando el modo monousuario.
nota En el lanzamiento de Red Hat Enterprise Linux 6, se produjo un error de SELinux que bloqueó el comando passwd en modo de usuario único (n.º 644820). Si tiene el paquete original selinux-policy instalado, debe ejecutar el comando setenforce 0 en el nivel de ejecución 1 para que el comando passwd funcione. Después de cambiar la contraseña, debe ejecutar setenforce 1 nuevamente para volver SELinux a modo obligatorio.
3.
Asegure GRUB al agregar una línea password encriptada a la sección global de grub.conf ¿Qué comando usó para generar la contraseña encriptada?
¿Qué línea agregó a grub.conf?
4.
Vuelva a arrancar el sistema e intente pasar al modo monousuario.
Preguntas de revisión: 1.
¿En qué momento se le solicitó que ingrese la contraseña de GRUB?
RH135-6-es-2-20110131
271
Capítulo 18. Técnicas de recuperación del sistema
2.
¿Qué ocurre si escribe la contraseña incorrecta?
3.
¿Puede arrancar el sistema sin la contraseña de GRUB? .
272
RH135-6-es-2-20110131
Prueba de criterios
Notas personales
RH135-6-es-2-20110131
273
Capítulo 18. Técnicas de recuperación del sistema
Resumen de la unidad El proceso de arranque En esta sección, aprendió a: • Describir el proceso de arranque de Red Hat Enterprise Linux 6 . Reparación de problemas de arranque En esta sección, aprendió a: • Arreglar problemas con el proceso de arranque ocasionados por un sistema de archivos que no se montará adecuadamente • Editar archivos desde el intérprete de comandos de mantenimiento de sistema de archivos de sólo lectura .
274
RH135-6-es-2-20110131
Apéndice A. Soluciones Instalación automática de Red Hat Enterprise Linux Práctica Caso de estudio
Creación de un archivo kickstart con system-configkickstart En este ejercicio, su organización implementará estaciones de trabajo basadas en Red Hat Enterprise Linux para los ingenieros y se le ha solicitado que cree un archivo kickstart para facilitar la tarea. Realice este ejercicio en su máquina desktopX como student. Instalará system-config-kickstart. Cuando se inicie, es posible que system-configkickstart le pida instalar una fuente; puede cerrar este diálogo de manera segura. Use system-config-kickstart para crear un archivo kickstart de acuerdo a los parámetros especificados a continuación. • Elija la zona horaria adecuada. • La contraseña del usuario root debe ser redhat. • Kickstart debe realizar una instalación nueva desde el servidor web http:// instructor.example.com/pub/rhel6/dvd. • El MBR debe estar sin encriptar y el disco, inicializado. • El sistema debe tener un sistema de archivos ext4 de 100 MB montado en /boot. • El sistema debe tener una partición de intercambio de 512 MB. • El espacio en disco restante debe asignarse a una partición ext4 montada en /. • El dispositivo eth0 debe iniciarse durante el proceso de arranque y usar DHCP para la configuración. • Instale el grupo de paquetes Base. • Establezca un script posterior a la instalación que agregue: ENGINEERING WORKSTATION
al archivo /etc/issue. • Guarde el archivo kickstart como /home/student/engineer.cfg. •
El archivo kickstart resultante debe verse de manera similar a como se muestra a continuación:
RH135-6-es-2-20110131
275
Apéndice A. Soluciones
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use network installation url --url="http://instructor.example.com/pub/rhel6/dvd" # Root password rootpw --iscrypted $1$Fjoetb6b$AmMP6QWUV/Eep5XY1nH140 # Network information network --bootproto=dhcp --device=eth0 --onboot=on # System authorization information auth --useshadow --passalgo=md5 # Use graphical install graphical firstboot --disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --enforcing # Installation logging level logging --level=info # System timezone timezone America/New_York # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="ext4" --size=100 part swap --fstype="swap" --size=1 part / --fstype="ext4" --grow --size=1 %post echo ENGINEERING WORKSTATION >> /etc/issue %end %packages @base %end
Práctica Ejercicio
Poner el archivo kickstart a disposición de los instaladores a través de HTTP 1.
Inicie sesión en desktopX como student.
2.
Conviértase en root e implemente un servidor web.
276
RH135-6-es-2-20110131
nota Recuerde que debe instalar, iniciar, habilitar y probar.
Para verificar que el servidor web Apache está instalado, vaya a System → Administration → Add/Remove Software. Escriba web server, luego haga clic en Find. Confirme que Apache HTTP Server esté instalado. Para habilitar e iniciar el servicio web Apache, vaya a System → Administration → Services. Resalte httpd en la ventana izquierda. Haga clic en el botón Start, luego haga clic en el botón Enable. Para realizar una prueba, inicie Firefox y apúntelo a http://desktopX para ver la página de prueba. 3.
Copie /home/student/engineer.cfg en /var/www/html/ [root@desktopX ~]# cp /home/student/engineer.cfg /var/www/html/
4.
Acceda a http://desktopX/engineer.cfg de un navegador web para verificar la disponibilidad. [root@desktopX ~]# elinks -source http://desktopX/engineer.cfg
Práctica Ejercicio
Inicio de una instalación kickstart Antes de comenzar... Apague correctamente su máquina virtual serverX (vserver) para recuperar los recursos del sistema. Use el archivo kickstart creado anteriormente (engineer.cfg) para implementar una nueva máquina virtual. 1.
En desktopX, cree una nueva máquina virtual con virt-manager. Elija Network Boot (PXE) como método de instalación. Configure la máquina virtual con los valores predeterminados si no se especifican a continuación: • Nombre: ingeniero • Create a disk image on the computer's hard drive: 4 GB
2.
Diseñe e ingrese una línea de invocación de Kickstart adecuada para el archivo engineer.cfg, luego inicie la instalación. Una vez que se presenta la pantalla de instalación desde PXE, presione la tecla Tab e ingrese la información de Kickstart como se muestra a continuación:
RH135-6-es-2-20110131
277
Apéndice A. Soluciones
> vmlinuz initrd=initrd.img ks=http://desktopX/engineer.cfg
Si el archivo kickstart tiene errores, es posible que se aborte la instalación. En ese caso, edite el archivo /var/www/html/engineer.cfg file en desktopX y arregle el problema. Destruya la máquina virtual engineer (ingeniero) y su disco, y reinicie la instalación.
Práctica Caso de estudio
Modificar un archivo kickstart sin system-configkickstart nota Por cuestiones de tiempo, no llevará a cabo una instalación con este archivo kickstart.
Como root en desktopX, cree una copia de /root/anaconda-ks.cfg denominada /home/ student/projman.cfg. Mediante el uso de un editor de textos solamente, modifique ese archivo de modo que cumpla con los siguientes criterios: 1.
La instalación debe ser completamente automatizada, y exactamente igual a la instalación actual de desktopX (incluida la partición), excepto... • Se instalará el grupo de paquetes Backup Server. • Se instalará el paquete mtx, que no está incluido en el grupo Backup Server de modo predeterminado. • No se utilizará ninguna de las secuencias de comando existentes de %pre y %post • Se creará un archivo /etc/issue en %post, con el nombre: PROJECT MANAGEMENT
2.
ksvalidator debe poder validar el archivo.
Una vez completo todo esto, copie el archivo en /var/www/html/. 1.
2.
[root@desktopX]# cp /root/anaconda-ks.cfg /home/student/projman.cfg [root@desktopX]# chown student:student /home/student/projman.cfg [root@desktopX]# chmod 644 /home/student/projman.cfg
Como estudiante, edite el archivo /home/student/projman.cfg e incluya los requisitos que se detallan arriba. Asegúrese de eliminar los comentarios de clearpart y de otras líneas de la partición. Debe decir lo siguiente: # Kickstart file automatically generated by anaconda.
278
RH135-6-es-2-20110131
#version=RHEL6 install url --url=ftp://instructor.example.com/pub/rhel6/dvd lang en_US.UTF-8 keyboard us network --device eth0 --bootproto dhcp rootpw --iscrypted $1$YZO7ZHEP$M0uO1Ut96QBgertJRauEZ/ # Reboot after installation reboot firewall --disabled authconfig --useshadow --enablemd5 selinux --enforcing timezone --utc America/New_York bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work clearpart --all --drives=sda part /boot --fstype=ext4 --size=100 part pv.LtUgsR-2QYc-f9OV-xG2S-PcGm-sfYq-eHJk2i --size=28000 part swap --size=512 volgroup vol0 --pesize=32768 pv.LtUgsR-2QYc-f9OV-xG2S-PcGm-sfYq-eHJk2i logvol /home --fstype=ext4 --name=home --vgname=vol0 --size=500 logvol / --fstype=ext4 --name=root --vgname=vol0 --size=8192 repo --name="Red Hat Enterprise Linux" --baseurl=ftp://instructor.example.com/pub/ rhel6/dvd/ --cost=100 %packages @Backup Server @Base @Console internet tools @Core @Desktop @Desktop Platform @Development Tools @General Purpose Desktop @Graphical Administration Tools @Internet Browser @Network file system client @Printing client @X Window System ftp lftp libvirt libvirt-client logwatch mtx mutt nss-pam-ldapd ntp policycoreutils-python qemu-kvm tigervnc virt-manager virt-viewer %end %post echo PROJECT MANAGEMENT > /etc/issue
RH135-6-es-2-20110131
279
Apéndice A. Soluciones
%end
3. 4.
[root@desktopX]# ksvalidator /home/student/projman.cfg
[root@desktopX]# cp /home/student/projman.cfg /var/www/html
Prueba
Prueba de criterios Lista de verificación de rendimiento
Instalación de una máquina virtual con Kickstart Antes de comenzar... Apague la máquina virtual engineer que creó anteriormente y elimine la máquina virtual y su disco. En Virtual Machine Manager GUI, haga clic con el botón derecho del mouse sobre engineer y elija Shutdown → Force Off. Luego, haga clic con el botón derecho sobre engineer nuevamente y elija Delete. Marque Delete associated storage files y haga clic en Delete. Arranque serverX si no está en ejecución. Copie el archivo /root/anaconda-ks.cfg de serverX en desktopX y colóquele el nombre /home/student/test.cfg. Apague serverX después de copiar el archivo para recuperar los recursos del sistema para el resto del ejercicio de laboratorio. [root@serverX]# scp /root/anaconda-ks.cfg student@desktopX:test.cfg [root@serverX]# poweroff
Modifique test.cfg según los siguientes criterios: • Agregue clearpart --all y zerombr, y particione el almacenamiento de acuerdo a lo siguiente: • /boot (ext4): 200 MB • Intercambio: 512 MB • / (ext4): 3 GB • Agregue el paquete gimp. • Cree un archivo /root/install-date con la fecha y hora. Agregue lo siguiente al archivo kickstart: clearpart --all zerombr part /boot --fstype=ext4 --size=200 part swap --size=512
280
RH135-6-es-2-20110131
part / --fstype=ext4 --size=3072 .... [after %packages] gimp ... %post date > /root/install-date ...
Copie test.cfg en /var/www/html/ en desktopX. Asegúrese de que Apache pueda leer el archivo. [root@desktopX ~]# cp /home/student/test.cfg /var/www/html/ [root@desktopX ~]# chmod 644 /var/www/html/test.cfg
Inicie una instalación de máquina virtual con el archivo kickstart test.cfg. Colóquele el nombre test a la máquina virtual. Use PXE como método de instalación y asigne 768 MB de RAM y 1 CPU a la máquina virtual. Cree un disco local de 4 GB para el disco virtual. En Virtual Machine Manager, haga clic sobre New. Ingrese test como el nombre, y seleccione el botón de radio Network Boot (PXE). Haga clic en Siguiente. Deje OS Type y Version como Generic y haga clic en Forward. Cambie Memory (RAM) a 768 MB y haga clic en Forward. Cambie el tamaño del disco a 4 GB. Haga clic en Siguiente. Verifique que la información sea correcta, y haga clic en Finish para comenzar la instalación. Cuando aparece el menú de instalación, presione la tecla Tab y agregue ks=http:// desktopX/test.cfg; luego presione Enter. La instalación debe continuar y volver a arrancar el sistema cuando haya finalizado. Vuelva a arrancar la máquina virtual cuando termine de instalarla y confirme que se haya instalado correctamente. Luego de haber completado satisfactoriamente el ejercicio y revisado su trabajo, elimine esta máquina virtual y su almacenamiento asociado para limpiar.
RH135-6-es-2-20110131
281
Apéndice A. Soluciones
Acceso a la línea de comando Práctica Cuestionario
Acceso a la línea de comando local 1.
Escriba . Ctrl+Alt+F2 para cambiar al segundo terminal virtual.
2.
Escriba su - para cambiar a la cuenta de usuario root.
3.
Escriba exit para cerrar sesión de un intérprete de comandos su –.
4.
Escriba exit para cerrar sesión del terminal virtual.
5.
Escriba . Ctrl+Alt+F1 para regresar a la GUI.
Práctica Lista de verificación de rendimiento
Acceso a la línea de comando remota Inicie sesión como estudiante en su máquina desktopX. Use ssh para conectarse a su máquina serverX. Acepte la llave de host si se solicita. [student@desktopX ~]$ ssh student@serverX The authenticity of host 'serverX (192.168.0.X+100)' can't be established. RSA key fingerprint is 47:bf:82:cd:fa:68:06:ee:d8:83:03:1a:bb:29:14:a3. Are you sure you want to continue connecting (yes/no)? yes student@serverX's password: student
Ejecute el comando w y exit. [student@serverX ~]$ w 11:01:23 up 1 day, 19:10, 1 user, load average: 0,0,0 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT student pts/1 desktopX 11:01 0.00s 0.12s 0.09s w [student@serverX ~]$ exit [student@desktopX ~]$
sshUse para conectarse a su máquina serverX como root. [student@desktopX ~]$ ssh root@serverX root@serverX's password: redhat [root@serverX ~]#
Ejecute el comando w y salga. [root@serverX 11:01:23 up 1 USER TTY root pts/2
282
~]# w day, 19:10, 1 user, load average: 0,0,0 FROM LOGIN@ IDLE JCPU PCPU desktopX 11:09 0.00s 0.13s 0.08s w
RH135-6-es-2-20110131
Prueba de criterios
[root@serverX ~]# exit [student@desktopX ~]$
Quite el archivo de hosts conocidos de SSH. [student@desktopX ~]$ rm ~/.ssh/known_hosts
Use ssh para conectarse a serverX como root nuevamente. Acepte la llave ssh, inicie sesión y luego salga de la sesión. [student@desktopX ~]$ ssh root@serverX The authenticity of host 'server1 (::1)' can't be established. RSA key fingerprint is 47:bf:82:cd:fa:68:06:ee:d8:83:03:1a:bb:29:14:a3. Are you sure you want to continue connecting (yes/no)? yes root@serverX's password: redhat [root@serverX ~]# exit [student@desktopX ~]$
Use ssh de forma no interactiva para ejecutar el comando hostname en serverX como usuario root. [student@desktopX ~]$ ssh root@serverX hostname root@serverX's password: redhat serverX.example.com
Prueba
Prueba de criterios Ejercicio
Uso de la línea de comando 1.
Cambie al segundo terminal virtual e inicie sesión como student en su máquina desktopX. En un entorno de clase en vivo, presione Ctrl+Alt+F2 En un entorno de capacitación virtual, seleccione Ctrl+Alt+F2 desde el menú Send Key en la parte superior izquierda de la ventana Classroom Systems.
2.
Cambie a usuario root. [student@desktopX ~]$ su Password: redhat [root@desktopX ~]#
3.
Use ssh para conectarse a su máquina serverX. Acepte la llave de host si se solicita. [root@desktopX ~]# ssh serverX The authenticity of host 'serverX (192.168.0.X+100)' can't be established. RSA key fingerprint is 0b:3c:2c:9c:e8:03:4c:44:ec:5a:fa:b7:66:d0:c6:44.
RH135-6-es-2-20110131
283
Apéndice A. Soluciones
Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.X+100' (RSA) to the list of known hosts. root@serverX's password: redhat [root@serverX ~]#
4.
Ejecute el comando w y exit. [root@serverX ~]# w 18:36:10 up 7:15, 3 users, load average: 0.0, 0.0, 0.0 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.0.X 17:02 00:00 0.04s 0.04s w [root@serverX ~]# exit logout Connection to 192.168.0.X+100 closed. [root@desktopX ~]#
5.
Use SSH para conectarse a su máquina serverX como student. [root@desktopX ~]# ssh student@serverX student@serverX's password: student [student@serverX ~]$
6.
Ejecute el comando w y exit. [student@serverX ~]$ w 18:36:10 up 7:15, 3 users, load average: 0.0, 0.0, 0.0 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT student pts/0 192.168.0.X 17:02 0:0 0.04s 0.04s w [student@serverX ~]$ exit logout Connection to 192.168.0.X+100 closed. [root@desktopX ~]#
7.
Quite el archivo de hosts conocidos de ssh. [root@desktopX ~]# rm -f ~/.ssh/known_hosts
8.
ssh a serverX como student nuevamente, y observe que se le solicita nuevamente la llave del host. Acepte la llave. [root@desktopX ~]# ssh student@serverX The authenticity of host 'serverX (192.168.0.X+100)' can't be established. RSA key fingerprint is 0b:3c:2c:9c:e8:03:4c:44:ec:5a:fa:b7:66:d0:c6:44. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.X+100' (RSA) to the list of known hosts. student@serverX's password: student [student@serverX ~]$
9.
Una vez que inició sesión, exit hacia atrás a su intérprete de comandos en desktopX. [student@serverX ~]$ exit [root@desktopX ~]#
284
RH135-6-es-2-20110131
Prueba de criterios
10. Use ssh de forma no interactiva para ejecutar el comando ip route en serverX como usuario root. [root@desktopX ~]# ssh serverX ip route root@serverX's password: redhat ...output omitted... [root@desktopX ~]#
RH135-6-es-2-20110131
285
Apéndice A. Soluciones
Herramientas intermedias de la línea de comando Práctica Cuestionario
Comparación entre enlaces físicos y simbólicos 1.
Un symlink se puede utilizar para cruzar entre sistemas de archivos.
2.
Un enlace físico aumenta el conteo de enlaces.
3.
Cuando crea un enlace físico, puede eliminar el archivo original sin perder ningún dato.
Práctica Ejercicio
Implementar enlaces físicos y simbólicos Use esta tarea para practicar la creación y la exploración de enlaces físicos y simbólicos. 1.
Inicie sesión en la máquina serverX como estudiante.
2.
Cree un archivo con el nombre test1 en su directorio hogar. $ echo "This file is test1" > test1
3.
Cree un enlace simbólico en el directorio hogar denominado symlink que apunte al archivo test1, y compruebe que symlink apunte al contenido de test1. $ ln -s test1 symlink $ cat symlink This file is test1
4.
Cree un enlace físico en el directorio hogar con el nombre hardlink que apunte al archivo test1. $ ln test1 hardlink
5.
¿Cuál es el conteo de enlaces para el archivo test1? $ ls -l test1 -rw-r--r--. 2 lrwxrwxrwx. 1 -rw-r--r--. 2
6.
hardlink symlink root root 19 Jan 26 13:35 hardlink root root 5 Jan 26 13:36 symlink -> test1 root root 19 Jan 26 13:35 test1
Quite el archivo test1. $ rm test1 $ ls -l test1 hardlink symlink ls: cannot access test1: No such file or directory -rw-r--r--. 1 root root 19 Jan 26 13:35 hardlink lrwxrwxrwx. 1 root root 5 Jan 26 13:36 symlink -> test1 $ cat symlink
286
RH135-6-es-2-20110131
Prueba de criterios
$ cat hardlink This file is test1 $
7.
¿Qué sucedió con symlink? El enlace se rompe cuando se elimina test1, de modo que symlink apunta a nada.
8.
¿Cuál es el conteo de enlaces en hardlink? El conteo de enlaces se redujo de 2 a 1 cuando se eliminó test1.
9.
¿Cómo recuperaría los datos en el archivo test1? Podría copiar hardlink a test1 (cp hardlink test1) o configurar un enlace físico a hardlink (ln hardlink test1).
Opciones principales de tar 1.
c = crear
2.
x = extraer
3.
t = evaluar
4.
v = detallado
5.
f = nombre de archivo
6.
z = gzip
7.
j = bzip2
Práctica Ejercicio
Archivar y comprimir archivos Realice una copia de seguridad del directorio /etc desde serverX para descomprimir un fichero de archivos tar comprimido. Use el comando rsync para copiar ese fichero en su sistema desktopX. Luego extraiga los archivos al directorio /backups en desktopX. Cree el directorio / backups si aún no existe. 1.
Inicie sesión en serverX como usuario root. [root@desktopX ~]# ssh root@serverX
2.
Cree un archivo de /etc con la compresión gzip. Guarde el archivo como /tmp/ etc.tar.gz. [root@serverX ~]# tar cvzf /tmp/etc.tar.gz /etc ...
RH135-6-es-2-20110131
287
Apéndice A. Soluciones
[root@serverX ~]# exit
3.
Copie el archivo /tmp/etc.tar.gz desde su serverX al directorio /backups en su máquina desktopX. [root@desktopX ~]# mkdir /backups [root@desktopX ~]# rsync serverX:/tmp/etc.tar.gz /backups
4.
Extraiga el archivo comprimido en /backups en desktopX. [root@desktopX ~]# cd /backups [root@desktopX backups]# tar xjvf etc.tar.gz ...
Modos principales de vim 1.
El modo comando se usa para la exploración de archivos, copiar y pegar, y ejecutar comandos simples.
2.
El modo insertar se usa para la edición de texto normal.
3.
El modo ex se usa para guardar, salir, buscar y reemplazar, y realizar otras operaciones complejas.
Práctica Ejercicio
Editar archivos con VIM Cree y edite un pequeño archivo de texto para practicar algunos comandos vim. Luego, edite el archivo /etc/issues y observe cómo el contenido de ese archivo se muestra en los avisos de inicio de sesión de sus consolas virtuales. 1.
Abra un intérprete de comandos en su máquina serverX y cambie a usuario root.
2.
Abra un archivo de práctica: vim /tmp/testfile.txt
3.
Presione i para ir al modo insertar. Luego escriba texto que se vea de la siguiente manera: Change the last word in this line to goose: duck Quack Quack Remove the first two Quack words. Copy this line so it appears twice Make sure this is the first line in the file.
4.
Presione la tecla Esc y escriba 1G para volver a la primera línea del archivo.
5.
En la primera línea, cambie la palabra duck a goose. Continúe con una palabra a la vez al presionar la tecla w varias veces hasta que el cursor se encuentre en la primera letra de duck. (Si va demasiado lejos, presione b para volver atrás una palabra). Luego escriba cw (cambiar palabra), escriba goose y presione Esc.
288
RH135-6-es-2-20110131
Prueba de criterios
6.
En la segunda línea, elimine las primeras dos apariciones de Quack Ubique el cursor sobre la primera palabra Quack y escriba 2dw para eliminar ambas palabras.
7.
Copie la tercera línea, luego péguela de modo que aparezca dos veces. Ubique el cursor sobre la tercera línea (Copy this line...) y presione yy para copiarla. Luego presione p para pegarla después de la línea actual. Ahora, la línea debe aparecer dos veces.
8.
Elimine la línea final, luego péguela de modo que aparezca como la primera línea de la fila. Cuando haya finalizado, el texto completo debe aparecer de la siguiente manera: Make sure this is the first line in the file. Change the last word in this line to goose: goose Remove the first two Quack words. Copy this line so it appears twice Copy this line so it appears twice
Ubique el cursor en la línea que comienza "Make sure this..." y presione dd para eliminar la línea entera. Ubique el cursor en la primera línea (escriba 1G) y presione P (que es una p mayúscula) para pegar la línea eliminada arriba de la primera línea. 9.
Guarde y salga del archivo (escriba :wq).
10. A continuación, use VIM para editar /etc/issue y agregue el texto Welcome!
en la parte superior del archivo. 11.
Realice una prueba al cambiar a una consola virtual (Ctrl+AltF2) y al presionar Enter para actualizar el aviso. El texto Welcome! debe aparecer en la parte superior del aviso de inicio de sesión.
Prueba
Prueba de criterios Ejercicio
Practicar el uso de ln, tar y VIM Combine las habilidades que aprendió en esta unidad; para ello, cree enlaces (físico y blandos) con el comando ln, cree un fichero de archivos tar y use el editor de texto vim. 1.
Inicie sesión en serverX como student.
2.
Cree un enlace simbólico a /etc/passwd en su directorio hogar.
RH135-6-es-2-20110131
289
Apéndice A. Soluciones
[student@serverX ~]$ ln -s /etc/passwd
3.
Cree un nuevo archivo en su directorio hogar con el nombre newfile. [student@serverX ~]$ touch newfile
4.
Cree un enlace físico a newfile, con el nombre newhardlink. [student@serverX ~]$ ln newfile newhardlink
5.
Archive y comprima (con la compresión bzip2) su directorio hogar en /tmp/studenthome.tar.bz2. [student@serverX ~]$ tar -jcvf /tmp/student-home.tar.bz2 ~
6.
Cree un nuevo archivo en su directorio hogar con el nombre myvimfile.txt con vim e incluya la siguiente línea: I wrote this using vim!
[student@serverX ~]$ vim myvimfile.txt
Una vez que se encuentre en vim, presione i para ingresar al modo insertar, escriba I wrote this using vim!, presione Esc para volver al modo comandos; luego :wq para ingresar al modo ex, guardar y salir.
290
RH135-6-es-2-20110131
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O) Más ejemplos de expresiones regulares 1.
¿Con qué coincide h[aiou]t? hat, hit, hot y hut.
2.
¿Con qué coincide b[ol][oa]t? boot, boat, blot y blat.
Práctica Cuestionario
Coincidencia de expresiones regulares Seleccione todos los elementos que coincidan con la expresión regular en cada uno de estos casos. 1.
ba[nr]k (seleccione uno o más de los siguientes…) a. bank b. banrk c. bark d. bakk
2.
^root (seleccione uno o más de los siguientes…) a. root:x:0:0:root:/root:/bin/bash b. operator:x:11:0:operator:/root:/sbin/nologin c. ¡El usuario root es el mejor! d. Usted no es usuario root.
3.
root (seleccione uno o más de los siguientes…) a. root:x:0:0:root:/root:/bin/bash b. operator:x:11:0:operator:/root:/sbin/nologin c. ¡El usuario root es el mejor! d. Usted no es usuario root.
4.
r..t (seleccione uno o más de los siguientes…) a. root:x:0:0:root:/root:/bin/bash b. operator:x:11:0:operator:/root:/sbin/nologin c. ¡El usuario root es el mejor!
RH135-6-es-2-20110131
291
Apéndice A. Soluciones
d.
Usted no es usuario root.
Práctica Cuestionario
Crear una expresión regular Cree una expresión regular que coincida para cada uno de los siguientes requisitos. 1.
La línea comienza con "Probar" o "probar". ^[pP]robar
2.
La línea finaliza con "fin". fin\.$
3.
La línea completa es: Esto es una prueba. ^Esto es una prueba\.$
4.
Cualquiera de los siguientes nombres: archivo5 archivo6 archivo7 archivo8 archivo[5678]
5.
Cualquiera de los siguientes nombres: archivo2 archivo4 archivo6 archivo8 archivo[2468]
Práctica Ejercicio
Expresiones regulares en las páginas man Abra la página del manual passwd(1) y realice las siguientes búsquedas de expresiones regulares. Recuerde que debe usar la barra diagonal (/) para buscar páginas de manual.
Importante Asegúrese de volver a la parte superior de la página del manual entre cada una de estas búsquedas; para ello, presione la tecla g.
1.
Buscar exit Escriba: /exit
292
RH135-6-es-2-20110131
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
2.
Buscar una línea que comience con exit Escriba: /^exit
3.
Buscar password Escriba: /password
4.
Buscar password. Escriba: /password\.
5.
Busque cualquier cosa hasta (e incluido) pass Escriba: /.*pass
Práctica Cuestionario
Crear comandos grep Cree comandos grep para cumplir con los requisitos indicados a continuación en función del archivo /etc/passwd. 1.
Escriba todos los nombres de usuario que comiencen con la letra r. grep '^r' /etc/passwd
2.
Escriba todos los nombres de usuario que comiencen con la letra g. grep '^g' /etc/passwd
3.
Escriba todas las cuentas cuyos intérpretes de comandos (última columna) sean /sbin/ nologin. grep '/sbin/nologin$' /etc/passwd
4.
Escriba todas las cuentas con UID o GID (tercera y cuarta columnas) 0. grep ':0:' /etc/passwd
5.
Escriba todas las cuentas con UID o GID en el rango de 10 a 19. grep ':1[0123456789]:' /etc/passwd
Práctica Cuestionario
Canalizaciones y redirección Cree comandos que cumplan con los requisitos indicados a continuación 1.
Enumere todos los archivos en /usr/share/doc que finalicen con el número cuatro.
RH135-6-es-2-20110131
293
Apéndice A. Soluciones
ls /usr/share/doc | grep '4$' 2.
Escriba todas las líneas en /etc/hosts que tengan un número. grep '[0123456789]' /etc/hosts
3.
Escriba la línea en /etc/hosts que tenga 127.0.0.1. grep '127\.0\.0\.1' /etc/hosts
4.
Ejecute el siguiente comando como student y redirija STDOUT a /tmp/output.txt y STDERR a /tmp/error.txt. find /etc -name 'host*'
find /etc -name 'host*' > /tmp/output.txt 2> /tmp/error.txt 5.
Ejecute el siguiente comando como student y redirija STDOUT y STDERR al archivo / tmp/all.txt. find /etc -name 'host*'
find /etc -name 'host*' > /tmp/all.txt 2>&1 6.
Ordene el archivo /etc/passwd y envíelo a la impresora predeterminada. cat /etc/passwd | sort | lpr
7.
Escriba las líneas en /etc/passwd que tengan un número de tres dígitos entre los dos puntos (:). grep ':[0123456789][0123456789][0123456789]:' /etc/passwd
Prueba
Prueba de criterios Ejercicio
Expresiones regulares, canalizaciones y redirección de entrada/ salida (I/O) 1.
Inicie sesión en serverX como student.
2.
Escriba todas las líneas en /etc/hosts que no comiencen con una marca "hash" (#). [SUGERENCIA: Busque Invertir en la página del manual grep(1)]. Redireccione los resultados a /tmp/hosts. [student@serverX ~]$ grep -v '^#' /etc/hosts > /tmp/hosts
294
RH135-6-es-2-20110131
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
3.
Agregue los resultados de date y hostname al archivo /tmp/hosts. [student@serverX ~]$ date >> /tmp/hosts [student@serverX ~]$ hostname >> /tmp/hosts
4.
Edite /tmp/hosts con gedit o vim y cambie 127.0.0.1 a 127.0.0.2. Comente los resultados de date y hostname al agregar una marca "hash" (#) al comienzo de la línea. El aspecto del archivo ahora será parecido a lo siguiente: 192.168.0.X+100 serverX.example.com serverX # Added by NetworkManager 127.0.0.2 localhost.localdomain localhost ::1 serverX.example.com serverX localhost6.localdomain6 localhost6 #Wed Jan 26 13:46:19 EST 2011 #serverX.example.com
5.
Use la página del manual lpr(1), escriba las líneas que contengan la palabra file seguida de ninguna o más "s". Redirija los resultados al archivo /tmp/lpr.man. [student@serverX ~]$ man lpr | grep 'files*' > /tmp/lpr.man
RH135-6-es-2-20110131
295
Apéndice A. Soluciones
Configuración de red y solución de problemas Práctica Cuestionario
Visualización y modificación de la configuración de red 1.
Complete la tabla a continuación con comandos, utilidades y nombres de archivo. Categoría de configuración
Dirección IP y máscara de subred
Ver configuración actual
Cambiar configuración
ip addr
NetworkManager o /etc/ sysconfig/networkscripts/ifcfg-eth*
Enrutamiento/Puerta de enlace predeterminada
ip route
NetworkManager, /etc/ sysconfig/networkscripts/ifcfg-eth* o /etc/sysconfig/ network
Nombre de host del sistema
hostname
NetworkManager, hostname o /etc/ sysconfig/network
host se puede utilizar para resolver nombres. /etc/hosts y /etc/ resolv.conf muestran la configuración actual.
NetworkManager, / etc/hosts o /etc/ resolv.conf
Resolución de nombres
Tabla A.1. Configuración de red desde la línea de comando
296
RH135-6-es-2-20110131
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
2.
¿Qué contiene un ifcfg-eth0 dinámico?
DEVICE=eth0 ONBOOT=yes BOOTPROTO=yes 3.
¿Qué contiene un ifcfg-eth0 estático?
DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.0.X+100 PREFIX=24 GATEWAY=192.168.0.254 DNS1=192.168.0.254
Práctica Ejercicio
Documentar la configuración de red Antes de dividir la configuración de la red, documentemos la configuración actual en el sistema de serverX. 1.
Inicie sesión en serverX como usuario root.
2.
a.
¿Cuál es la dirección IP actual? 192.168.0.X+100 Se obtiene al ejecutar ip addr.
b.
¿Cuál es la máscara de subred CIDR actual? /24 Se obtiene al ejecutar ip addr.
c.
¿Cuál es la puerta de enlace predeterminada actual? 192.168.0.254 Se obtiene al ejecutar ip route.
d.
¿Cuál es el nombre de host actual? serverX.example.com
RH135-6-es-2-20110131
297
Apéndice A. Soluciones
Se obtiene al ejecutar hostname. e.
¿Cuáles son los servidores DNS actuales? 192.168.0.254 Se obtienen al ejecutar cat /etc/resolv.conf
Prueba
Prueba de criterios Ejercicio
Solución de problemas de configuración de red desde la línea de comando Todas las siguientes acciones deben ejecutarse en su servidor virtual, serverX. Comenzará por ejecutar un script que "dividirá" la configuración de la red. Tendrá diez minutos para solucionar cada uno de los tres problemas. Asegúrese de documentar lo que encuentre, ya que al final realizaremos una revisión. 1.
Ejecute el primer script para generar un error de configuración en la red: lab-break-net 1
2.
Síntoma: un navegador web no puede acceder a la página web en http:// instructor.remote.test.
3.
Realice los tres pasos: PROBAR, VERIFICAR y REPARAR para identificar y solucionar el problema.
4.
Documente lo que encuentre. SOLUCIÓN: El nombre del host instructor.remote.test no está siendo resuelto a una dirección IP, dado que /etc/resolv.conf apunta al servidor DNS incorrecto. Corrección del problema: modificar /etc/sysconfig/network-scripts/ifcfg-eth0 para obtener DNS1=192.168.0.254.
5.
Ejecute el segundo script para generar un error de configuración en la red: lab-break-net 2
6.
Síntoma: un navegador web no puede acceder a la página web en http:// instructor.remote.test.
7.
Realice los tres pasos: PROBAR, VERIFICAR y REPARAR para identificar y solucionar el problema.
8.
Documente lo que encuentre.
298
RH135-6-es-2-20110131
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
SOLUCIÓN: El host instructor.remote.test se encuentra en una red por separado y es inalcanzable. ip route muestra que la puerta de enlace predeterminada apunta a un enrutador incorrecto. Corrección del problema: modificar /etc/sysconfig/networkscripts/ifcfg-eth0 para obtener GATEWAY=192.168.0.254. 9.
Ejecute el tercer script para generar un error de configuración en la red: lab-break-net 3
10. Síntoma: Un navegador web no puede acceder a la página web en http:// instructor.remote.test. 11.
Realice los tres pasos: PROBAR, VERIFICAR y REPARAR para identificar y solucionar el problema.
12. Documente lo que encuentre. SOLUCIÓN: Ningún otro host es alcanzable, como muestra ip addr, la dirección IP de la interfaz eth0 es incorrecta. Resuelva al modificar /etc/sysconfig/network-scripts/ ifcfg-eth0 para obtener IPADDR=192.168.0.100+X.
RH135-6-es-2-20110131
299
Apéndice A. Soluciones
Administración de particiones simples y sistemas de archivos Práctica Cuestionario
Agregar un nuevo sistema de archivos Complete los espacios en blanco con el comando que cumple con la tarea detallada. 1.
Identificar un disco que tenga espacio libre: fdisk -cul
2.
Crear una nueva partición en ese disco: fdisk -cu /dev/device
3.
Actualizar la tabla de particiones del kernel: reboot
4.
Crear un sistema de archivos en la partición mkfs -t ext4 /dev/device
5.
Determinar el UUID del sistema de archivos blkid /dev/device
6.
Crear un punto de montaje: mkdir /directory
7.
Agregar una entrada al archivo de tabla del sistema de archivos Agregar una entrada a / etc/fstab como la siguiente: UUID=cb79b7d0-dc14-4402-8465-6857346c9a53 /directory ext4 defaults 1 2
8.
Montar el sistema de archivos mount -a
Práctica Ejercicio para ordenar
Crear un sistema de archivos encriptado Para cada uno de los nombres de archivo o directorio indicados a continuación, escriba el número de la definición correspondiente indicado en la lista debajo. 1 4 2 6 8 5 3 7 9
Crear una nueva partición Crear un sistema de archivos ext4 Formatear la nueva partición para la encriptación Montar el sistema de archivos en el dispositivo desbloqueado Crear una entrada en /etc/fstab Crear un directorio para usarlo como punto de montaje Desbloquear la partición encriptada Crear una entrada en /etc/crypttab Permitir que LUKS reconozca el archivo de contraseña
1.
fdisk
2.
cryptsetup luksFormat /dev/vdaN
3.
cryptsetup luksOpen /dev/vdaNsecret
4. mkfs -t ext4 /dev/mapper/secret
300
RH135-6-es-2-20110131
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
5.
mkdir /secret
6. mount /dev/mapper/secret /secret 7.
secret /dev/vdaN/password/file
8. /dev/mapper/secret /secret ext4 defaults 1 2 9.
cryptsetup luksAddKey /dev/vdaN/password/file
Práctica Ejercicio
Crear y usar una nueva partición de intercambio Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
Inicie fdisk y cree una nueva partición de 256 MB. Cambie el tipo de partición a swap.
Importante Para tener espacio para crear particiones adicionales en el futuro, si es necesario, asegúrese de crear una partición extendida previamente.
[root@serverX ~]# fdisk -cu /dev/vda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First sector (9914368-12582911, default 9914368): Enter Using default value 9914368 Last sector, +sectors or +size{K,M,G} (9914368-12582911, default 12582911): +256M Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 82 Changed system type of partition 3 to 82 (Linux swap / Solaris) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. [root@serverX ~]# reboot
2.
Prepare la nueva partición para usarla como intercambio:
RH135-6-es-2-20110131
301
Apéndice A. Soluciones
[root@serverX ~]# mkswap /dev/vda3
3.
Determine el UUID. [root@serverX ~]# blkid /dev/vda3 /dev/vda3: UUID="36fbc448-b969-4dcb-b940-acd084eae6bb" TYPE="swap"
4.
Agregue la nueva partición a /etc/fstab. Agregue una línea como la siguiente a /etc/fstab, con el valor UUID de la salida del comando blkid de arriba: UUID="36fbc448-b969-4dcb-b940-acd084eae6bb" swap swap defaults 0 0
5.
Determine la cantidad actual de intercambio. [root@serverX ~]# swapon -s Filename /dev/dm-0
6.
Type partition
Size 557048
Used 0
Priority -1
Active el nuevo intercambio. [root@serverX ~]# swapon -a swapon: /dev/mapper/vgsrv-swap: swapon failed: Device or resource busy
7.
Verifique el intercambio recientemente activado. [root@serverX ~]# swapon -s Filename /dev/dm-0 /dev/vda3
Type partition partition
Size 557048 262136
Used 0 0
Priority -1 -2
Prueba
Prueba de criterios Caso de estudio
Administración de particiones simples y sistemas de archivos Antes de comenzar... Ejecute lab-setup-storage en desktopX para preparar serverX para el ejercicio. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. Su departamento desea usar una parte del espacio de almacenamiento sin asignar en los servidores. Cree adiciones en el sistema según la siguiente lista:
302
RH135-6-es-2-20110131
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
• Cree una nueva partición y un sistema de archivos ext4 con un tamaño de 400 MB. El sistema de archivos se debe montar de manera persistente bajo /data. • Agregue de manera persistente una partición de intercambio que tenga un tamaño de 200 MB. • Cree un dispositivo encriptado con un sistema de archivos ext4 que tenga un tamaño de 256 MB y use la contraseña testing123. El sistema de archivos debe solicitar la contraseña en el arranque y montar el sistema de archivos en /test. Cuando esté listo para revisar su trabajo, ejecute lab-grade-storage en serverX.
Importante Para tener espacio para crear particiones adicionales en el futuro, si es necesario, asegúrese de crear una partición extendida previamente.
1. 2.
[root@desktopX ~]# lab-setup-storage
Use fdisk para agregar 3 particiones, para el sistema de archivos estándar, la partición de intercambio y el sistema de archivos encriptado, respectivamente. a.
Inicie una sesión interactiva con fdisk, y escriba la tabla existente. [root@serverX ~]# fdisk -cu /dev/vda Command (m for help): p Disk /dev/vda: 21.5 GB, 21474836480 bytes ... Device Boot /dev/vda1 * /dev/vda2
b.
Start 2048 526336
End 526335 9914367
Blocks 262144 4694016
Id 83 8e
System Linux Linux LVM
Para evitar problemas posteriores ocasionados por un número limitado de particiones principales, cree una partición extendida que abarque lo que queda del disco. Command (m for help): n Command action e extended p primary partition (1-4) e Partition number (1-4): 3 First sector (9914368-41943039, default 9914368): Enter Using default value 9914368 Last sector, +sectors or +size{K,M,G} (9914368-41943039, default 41943039): Enter Using default value 41943039 Command (m for help): p Disk /dev/vda: 21.5 GB, 21474836480 bytes ... Device Boot
RH135-6-es-2-20110131
Start
End
Blocks
Id
System
303
Apéndice A. Soluciones
/dev/vda1 /dev/vda2 /dev/vda3
c.
*
2048 526336 9914368
526335 9914367 41943039
262144 4694016 16014336
83 8e 5
Linux Linux LVM Extended
Agregue una partición de 400 MB para el sistema de archivos ext4. Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First sector (9916416-41943039, default 9916416): Enter Using default value 9916416 Last sector, +sectors or +size{K,M,G} (9916416-41943039, default 41943039): +400M
d.
Agregue una partición de 200 MB, y ajuste la etiqueta de manera adecuada para una partición de intercambio. Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First sector (10737664-41943039, default 10737664): Enter Using default value 10737664 Last sector, +sectors or +size{K,M,G} (10737664-41943039, default 41943039): +200M Command (m for help): t Partition number (1-6): 6 Hex code (type L to list codes): 82 Changed system type of partition 6 to 82 (Linux swap / Solaris)
e.
Agregue una partición de 256 MB para la partición ext4 encriptada. Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First sector (11149312-41943039, default 11149312): Enter Using default value 11149312 Last sector, +sectors or +size{K,M,G} (11149312-41943039, default 41943039): +256M
f.
Observe su trabajo, y salga al implementar los cambios. Command (m for help): p Disk /dev/vda: 21.5 GB, 21474836480 bytes ... Device Boot /dev/vda1 * /dev/vda2 /dev/vda3 /dev/vda5 /dev/vda6 /dev/vda7
304
Start 2048 526336 9914368 9916416 10737664 11149312
End 526335 9914367 41943039 10735615 11147263 11673599
Blocks 262144 4694016 16014336 409600 204800 262144
Id 83 8e 5 83 82 83
System Linux Linux LVM Extended Linux Linux swap / Solaris Linux
RH135-6-es-2-20110131
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
g.
Observe la advertencia, confirme que el kernel aún no tiene conocimiento de las nuevas particiones creadas del disco. [root@serverX ~]# cat /proc/partitions major minor #blocks name 8 8 8 253 253 253
0 1 2 0 1 2
20971520 262144 4694016 557056 3473408 262144
vda vda1 vda2 dm-0 dm-1 dm-2
h.
Vuelva a arrancar serverX.
i.
Una vez que haya vuelto a arrancar serverX, confirme que el kernel ahora tenga conocimiento de las nuevas particiones. [root@serverX ~]# cat /proc/partitions major minor #blocks name 8 8 8 8 8 8 8 253 253 253
3.
0 1 2 3 5 6 7 0 1 2
20971520 262144 4694016 1 409600 204800 262144 557056 3473408 262144
vda vda1 vda2 vda3 vda5 vda6 vda7 dm-0 dm-1 dm-2
Formatee la partición ext4, decida un punto de montaje (usaremos /data) y configure el sistema para montar automáticamente la partición al momento del arranque. a.
Suspenda el sistema de archivos ext4 en la partición de 400 MB, y determine el UUID resultante. [root@serverX ~]# mkfs.ext4 /dev/vda5 mke2fs 1.41.12 (17-May-2010) Filesystem label= ... [root@serverX ~]# blkid /dev/vda5 /dev/vda5: UUID="b06c6e49-c056-4af0-a6e1-ee79602f5bf8" TYPE="ext4"
RH135-6-es-2-20110131
305
Apéndice A. Soluciones
b.
Agregue una entrada (línea) a /etc/fstab, que asocia el sistema de archivos (identificado por UUID) con el punto de montaje indicado. UUID=b06c6e49-c056-4af0-a6e1-ee79602f5bf8 /data ext4
c.
defaults
1 2
Cree el punto de montaje (directorio), y use el comando mount para montar todos los puntos de montaje definidos (y así, confirmar que la entrada /etc/fstab recientemente creada es correcta). [root@serverX ~]# mkdir /data [root@serverX ~]# mount -a
d.
Use el comando df para confirmar que el sistema de archivos creado recientemente esté montado correctamente. [root@serverX ~]# df -h Filesystem Size /dev/mapper/vgsrv-root 3.3G tmpfs 246M /dev/vda1 248M /dev/mapper/vgsrv-home 248M /dev/vda5 388M
4.
Used Avail Use% Mounted on 2.1G 88K 30M
1.1G 246M 206M
11M 11M
226M 358M
67% / 1% /dev/shm 13% /boot 5% /home 3% /data
Inicialice la partición de intercambio, y prográmela para que se active en el momento de arranque. a.
Inicialice la partición de intercambio. [root@serverX ~]# mkswap /dev/vda6 Setting up swapspace version 1, size = 204796 KiB no label, UUID=c3f56fc4-cd69-48fe-bd87-fef41a1db3ae
b.
Agregue una entrada (línea) a /etc/fstab, que identifica la partición de intercambio por UUID. UUID=c3f56fc4-cd69-48fe-bd87-fef41a1db3ae swap
c.
swap
defaults
Active la partición, y observe las particiones de intercambio antes y después. [root@serverX ~]# cat /proc/swaps Filename Type Size Used /dev/dm-0 partition 557048 0 [root@serverX ~]# swapon -a swapon: /dev/mapper/vgsrv-swap: swapon failed: Device or resource busy [root@serverX ~]# cat /proc/swaps Filename Type Size Used /dev/dm-0 partition 557048 0 /dev/vda6 partition 204792 0
306
0 0
Priority -1
Priority -1 -2
RH135-6-es-2-20110131
Expresiones regulares, canalizaciones y redirección de entrada/salida (I/O)
(Observe que el mensaje "busy" [ocupado] se refiere a la partición de intercambio ya activa). 5.
Cree y configure la partición encriptada. a.
Coloque datos aleatorios en la partición. (En el laboratorio, este paso puede llevar mucho tiempo, y se puede omitir de manera segura). [root@serverX ~]# cat /dev/urandom > /dev/vda7 ( ... significant delay ... ) cat: write error: No space left on device
b.
Inicialice el nivel de encriptación de LUKS. [root@serverX ~]# cryptsetup luksFormat /dev/vda7 WARNING! ======== This will overwrite data on /dev/vda7 irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: testing123 Verify passphrase: testing123
c.
Abra el dispositivo LUKS, y elija un nombre arbitrario para acceder al nivel de texto sin formato (usaremos test_plaintext) [root@serverX ~]# cryptsetup luksOpen /dev/vda7 test_plaintext Enter passphrase for /dev/vda7: testing123
d.
Configure el archivo /etc/crypttab para que abra automáticamente el dispositivo en el momento de arranque, y solicite al usuario una contraseña. [root@serverX ~]# echo "test_plaintext /dev/vda7" >> /etc/crypttab
e.
Cree un sistema de archivos ext4. [root@serverX ~]# mkfs.ext4 /dev/mapper/test_plaintext mke2fs 1.41.12 (17-May-2010) ... [root@serverX ~]# blkid /dev/mapper/test_plaintext /dev/mapper/test_plaintext: UUID="5bf2d39e-cb79-4f4a-a276-2a306ad506c1" TYPE="ext4"
f.
Establezca un punto de montaje (usaremos /test) y agregaremos una línea similar a lo siguiente a /etc/fstab. UUID=5bf2d39e-cb79-4f4a-a276-2a306ad506c1 /test
g.
ext4
defaults
1 2
Cree un punto de montaje, monte todas las particiones y confirme que el sistema de archivos encriptado haya sido montado.
RH135-6-es-2-20110131
307
Apéndice A. Soluciones
[root@serverX ~]# mkdir /test [root@serverX ~]# mount -a [root@serverX ~]# df -h Filesystem Size Used Avail Use% Mounted on ... /dev/mapper/test_plaintext 246M 6.1M 228M 3% /test ...
6.
308
[root@serverX ~]# lab-grade-storage
RH135-6-es-2-20110131
Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Administración de almacenamiento flexible con el administrador de volúmenes lógicos Práctica Cuestionario
Componentes de LVM 1.
Complete el siguiente cuadro con los nombres de los componentes.
Unused Space
4.
3.
2.
1.
RH135-6-es-2-20110131
309
Apéndice A. Soluciones
Unused Space
2.
4.
Create logical volume (LV)
3.
Create volume group (VG)
2.
Create physical volume (PV)
1.
Partition physical storage
¿Cuáles son las partes más pequeñas (fragmentos o bloques) del volumen físico?
Las extensiones físicas
3.
¿Cuál es el tamaño más pequeño que podría tener un volumen lógico?
El tamaño de una única extensión física
4.
¿Qué hace referencia a las extensiones físicas de un volumen lógico?
Extensiones lógicas
310
RH135-6-es-2-20110131
Administración de almacenamiento flexible con el administrador de volúmenes lógicos
Práctica Ejercicio
Implementar el LVM y crear un volumen lógico Antes de comenzar... Asegúrese de ejecutar lab-setup-lvm desde su sistema de desktopX, lo cual preparará al sistema de serverX para el ejercicio de práctica. Todos estos pasos se llevarán a cabo en serverX. 1.
Cree una nueva partición de 512 MB y prepárela para su uso con el LVM como volumen físico.
Importante Para tener espacio para crear particiones adicionales en el futuro, si es necesario, asegúrese de crear una partición extendida previamente.
[root@serverX ~]# fdisk -cu /dev/vda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First sector (9914368-12582911, default 9914368): Enter Using default value 9914368 Last sector, +sectors or +size{K,M,G} (9914368-12582911, default 12582911): +512M Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 8e Changed system type of partition 3 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! ... Output Omitted ... [root@serverX ~]# reboot [root@serverX ~]# pvcreate /dev/vda3 Physical volume "/dev/vda3" successfully created
2.
Cree un grupo de volúmenes con el nombre shazam mediante el uso del volumen físico creado en el paso anterior. [root@serverX ~]# vgcreate shazam /dev/vda3 Volume group "shazam" successfully created
3.
Cree y formatee con ext4 un nuevo volumen lógico de 256 MB con el nombre /dev/ shazam/storage.
RH135-6-es-2-20110131
311
Apéndice A. Soluciones
[root@serverX ~]# lvcreate -n storage -L 256M shazam Logical volume "storage" created [root@serverX ~]# mkfs -t ext4 /dev/shazam/storage mke2fs 1.41.12 (17-May-2010) ... Output Omitted ...
4.
Modifique el sistema de modo que /dev/shazam/storage se monte durante el proceso de arranque como /storage. [root@serverX ~]# mkdir /storage
Agregue la siguiente línea en la parte inferior de /etc/fstab en serverX: /dev/shazam/storage
/storage
ext4
defaults 1 2
Pasos básicos para la creación de un volumen lógico 1.
Verificar el espacio disponible en el grupo de volúmenes
2.
Extender el volumen lógico
3.
Extender el sistema de archivos
Práctica Ejercicio
Extender un volumen lógico Todos estos pasos se llevarán a cabo en serverX. 1.
Determine la cantidad de espacio libre en el grupo de volúmenes shazam. [root@serverX ~]# vgdisplay shazam --- Volume group --VG Name shazam System ID Format lvm2 ... Output Omitted... VG Size 508.00 MiB PE Size 4.00 MiB Total PE 127 Alloc PE / Size 64 / 256.00 MiB Free PE / Size 63 / 252.00 MiB VG UUID accvy0-3bhi-9jK8-eg7u-44AL-ARRg-r7Uo30
2.
Extienda el volumen lógico /dev/shazam/storage con la mitad de las extensiones disponibles en el grupo de volúmenes usando las herramientas de la línea de comando. [root@serverX ~]# lvextend -l +32 /dev/shazam/storage Extending logical volume storage to 384.00 MiB Logical volume storage successfully resized
312
RH135-6-es-2-20110131
Administración de almacenamiento flexible con el administrador de volúmenes lógicos
3.
Extienda el sistema de archivos montado en /storage con las herramientas de la línea de comando. [root@serverX ~]# resize2fs /dev/shazam/storage resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/shazam/storage is mounted on /storage; on-line resizing required old desc_blocks = 1, new_desc_blocks = 2 Performing an on-line resize of /dev/shazam/storage to 393216 (1k) blocks. The filesystem on /dev/shazam/storage is now 393216 blocks long.
Práctica Ejercicio
Extender un grupo de volúmenes Todos estos pasos se llevarán a cabo en serverX. 1.
Cree una nueva partición de 512 MB y prepárela para su uso con el LVM como volumen físico.
Importante Para tener espacio para crear particiones adicionales en el futuro, si es necesario, asegúrese de crear una partición extendida previamente.
[root@serverX ~]# fdisk -cu /dev/vda Command (m for help): n Command action e extended p primary partition (1-4) e Selected partition 4 First sector (10962944-12582911, default 10962944): Enter Using default value 10962944 Last sector, +sectors or +size{K,M,G} (10962944-12582911, default 12582911): Using default value 12582911
Enter
Command (m for help): n First sector (10964992-12582911, default 10964992): Enter Using default value 10964992 Last sector, +sectors or +size{K,M,G} (10964992-12582911, default 12582911): +512M Command (m for help): t Partition number (1-5): 5 Hex code (type L to list codes): 8e Changed system type of partition 5 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at
RH135-6-es-2-20110131
313
Apéndice A. Soluciones
the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. [root@serverX ~]# reboot [root@serverX ~]# pvcreate /dev/vda5 Physical volume "/dev/vda5" successfully created
2.
Extienda el grupo de volúmenes shazam al agregar el volumen físico creado en el paso anterior. Use vgextend para extender el grupo de volúmenes. [root@serverX ~]# vgextend shazam /dev/vda5 Volume group "shazam" successfully extended
Determinar el tamaño de instantánea 1.
Frecuencia de cambio prevista
2.
Tiempo de instantánea requerido
Práctica Ejercicio
Creación de una instantánea de LVM Compare el contenido del volumen lógico existente, /dev/shazam/storage, con una nueva instantánea de volumen, /dev/shazam/storagesnap, mientras realiza cambios en el volumen original. Todos estos pasos se llevarán a cabo en serverX. 1.
Copie el archivo /usr/share/dict/linux.words en /storage para tener algunos datos para la comparación. [root@serverX ~]# cp /usr/share/dict/linux.words /storage
2.
Cree una nueva instantánea de volumen lógico de 20 MB de /dev/shazam/storage con el nombre storagesnap. [root@serverX ~]# lvcreate -n storagesnap -L20M -s /dev/shazam/storage Logical volume "storagesnap" created
3.
Monte /dev/shazam/storagesnap manualmente, con acceso de sólo lectura, en / storagesnap. [root@serverX ~]# mkdir /storagesnap [root@serverX ~]# mount -o ro /dev/shazam/storagesnap /storagesnap
4.
Enumere el contenido de /storagesnap y tenga en cuenta que es igual a /storage. [root@serverX ~]# ls /storagesnap /storage
314
RH135-6-es-2-20110131
Prueba de criterios
/storage: linux.words
lost+found
/storagesnap: linux.words lost+found
5.
Elimine el archivo /storage/linux.words y tenga en cuenta que aún existe en / storagesnap. [root@serverX ~]# rm /storage/linux.words rm: remove regular file `/storage/linux.words'? y [root@serverX ~]# ls /storagesnap /storage /storage: lost+found /storagesnap: linux.words lost+found
6.
Limpie: desmonte /storagesnap, quite el directorio y elimine el volumen lógico storagesnap. [root@serverX ~]# umount /storagesnap [root@serverX ~]# rmdir /storagesnap [root@serverX ~]# lvremove /dev/shazam/storagesnap Do you really want to remove active logical volume storagesnap? [y/n]: y Logical volume "storagesnap" successfully removed
Prueba
Prueba de criterios Caso de estudio
Caso de estudio de LVM Antes de comenzar... Ejecute lab-setup-lvm en desktopX para preparar serverX para el ejercicio. Allison necesita almacenar datos para su negocio. Su base de datos de clientes actual es de 256 MB. La información en la base de datos cambia alrededor de 10 MB por hora en un día normal. El software de copia de seguridad tarda 10 minutos para realizar una ejecución completa. Cree un nuevo grupo de volúmenes con el nombre allison con suficiente espacio para un volumen de 512 MB y una instantánea de ese volumen para el software de copia de seguridad. Una vez creado el grupo de volúmenes, cree dentro de este un volumen lógico de 512 MB para la base de datos de clientes de Allison denominada custdb. También cree una instantánea de volumen de la base de datos de clientes de Allison con el nombre custdbsnap para su software de copia de seguridad. Cuando esté listo para revisar su trabajo, ejecute lab-grade-lvm en serverX. 1.
[root@serverX ~]# lab-setup-lvm
RH135-6-es-2-20110131
315
Apéndice A. Soluciones
2.
Cree una nueva partición de 1 GB con fdisk, y vuelva a arrancar la máquina para que se implementen los cambios. [root@serverX ~]# fdisk -cu /dev/vda Command (m for help): p
Disk /dev/vda: 21.5 GB, 21474836480 bytes ... Device Boot /dev/vda1 * /dev/vda2
Start 2048 526336
End 526335 9914367
Blocks 262144 4694016
Id 83 8e
System Linux Linux LVM
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First sector (9914368-41943039, default 9914368): Using default value 9914368 Last sector, +sectors or +size{K,M,G} (9914368-41943039, default 41943039): +1G Command (m for help): w ... The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
Vuelva a arrancar serverX. 3.
Prepare la partición recientemente creada para usar con LVM. [root@serverX ~]# pvcreate /dev/vda3 Physical volume "/dev/vda3" successfully created
4.
Cree un nuevo grupo de volúmenes con el nombre allison usando la nueva partición. [root@serverX ~]# vgcreate allison /dev/vda3 Volume group "allison" successfully created
5.
Cree un volumen lógico de 512 MB para la base de datos de clientes de Allison. [root@serverX ~]# lvcreate -n custdb -L512M allison Logical volume "custdb" created
6.
Cree una instantánea de volumen de 10 MB de la base de datos de clientes de Allison. [root@serverX ~]# lvcreate -n custdbsnap -L10M -s /dev/allison/custdb Rounding up size to full physical extent 12.00 MiB Logical volume "custdbsnap" created
316
RH135-6-es-2-20110131
Prueba de criterios
7.
Cuando esté listo para revisar su trabajo, ejecute lab-grade-lvm en serverX. [root@serverX ~]#lab-grade-lvm
RH135-6-es-2-20110131
317
Apéndice A. Soluciones
Acceso a los servicios para intercambio de archivos de red Práctica Ejercicio
Acceso a un servidor de archivos de NFS Estos pasos deben ejecutarse en serverX. Después de verificar la disponibilidad de un recurso compartido de NFS, cree el punto de montaje necesario y monte el recurso compartido temporalmente. 1.
Verifique que /var/ftp/pub sea un recurso compartido de NFS disponible en el servidor instructor.example.com. showmount -e instructor.example.com
2.
Cree el directorio /server para usar como punto de montaje. mkdir /server
3.
Cree y ejecute un comando para montar el recurso compartido de NFS en el punto de montaje. mount instructor.example.com:/var/ftp/pub /server
4.
Cree una lista del contenido del punto de montaje para verificar que sea el contenido del recurso compartido de NFS de instructor.example.com. ls /server
5.
Limpie mediante el desmontaje del recurso compartido. umount /server
Práctica Ejercicio
Automontar recurso compartido de NFS con asignaciones indirectas Estos pasos deben ejecutarse en serverX. Ahora configurará el programa de automontaje para montar automáticamente una exportación de NFS en un directorio especificado a pedido. • El servidor NFS es instructor.example.com. • La exportación de NFS en el servidor es /var/ftp/pub. • El punto de montaje automático en su estación debe ser /server/public. • Use una asignación indirecta (no /net) para implementar esto.
318
RH135-6-es-2-20110131
Prueba de criterios
• Confirme que el automontaje funcione al cambiar el directorio al punto de montaje y acceder a los archivos en el recurso compartido. Realice los siguientes pasos: 1.
Cree/modifique los archivos de configuración del servicio autofs. Agregue la siguiente línea en /etc/auto.master: /server /etc/auto.server
Cree /etc/auto.server con el siguiente contenido: public -ro instructor.example.com:/var/ftp/pub
2.
Vuelva a cargar el programa de automontaje. service autofs reload
3.
Acceda al recurso compartido. ls /server/public
Prueba
Prueba de criterios Caso de estudio
Automontaje de recursos compartidos de NFS Estos pasos deben ejecutarse en serverX. • Su compañía ha incorporado un nuevo cliente, Organization of Secret Hidden Undertakings (OSHU). • La compañía tiene un nuevo servidor NFS con recursos compartidos para almacenar archivos relacionados con clientes "especiales": instructor.example.com. • El recurso compartido para este cliente es: /var/nfs/oshu. • Configure su estación de trabajo de modo que autofs monte automáticamente ese recurso compartido como: /special/oshu. • Cree una lista del contenido de /special/oshu para asegurarse de que pueda ver los siguientes archivos: supertopsecret.txt ultrashh.txt 1.
Agregue la siguiente línea en /etc/auto.master:
RH135-6-es-2-20110131
319
Apéndice A. Soluciones
/special /etc/auto.special
2.
Cree /etc/auto.special con el siguiente contenido: oshu -ro instructor.example.com:/var/nfs/oshu
3.
Vuelva a cargar el programa de automontaje: [root@serverX ~]# service autofs reload
320
RH135-6-es-2-20110131
Administración de las cuentas de usuario
Administración de las cuentas de usuario Práctica Ejercicio
Crear usuarios mediante el uso de las herramientas de la línea de comando Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. Cree una cantidad de usuarios en el sistema de serverX y establezca una contraseña inicial (indique en los espacios en blanco a continuación). 1.
Inicie sesión en serverX como usuario root.
2.
Agregue el usuario juliet. [root@serverX ~]# useradd juliet
3.
Confirme que juliet se haya agregado mediante el uso del comando id. [root@serverX ~]# id juliet uid=503(juliet) gid=503(juliet) groups=503(juliet)
4.
Confirme que juliet se ha agregado al examinar el archivo /etc/passwd. [root@serverX ~]# grep 'juliet' /etc/passwd juliet:x:503:503::/home/juliet:/bin/bash
5.
Use el comando passwd para inicializar la contraseña de juliet y escriba la contraseña aquí: . [root@serverX ~]# passwd juliet Changing password for user juliet. New password: juliet BAD PASSWORD: it is based on a dictionary word BAD PASSWORD: is too simple Retype new password: juliet passwd: all authentication tokens updated successfully.
6.
Continúe agregando el resto de los usuarios de la lista abajo. Recuerde establecer una contraseña inicial y escribirla al lado de cada nombre de usuario: • faraday • jack • kate • james • walt • ben
RH135-6-es-2-20110131
321
Apéndice A. Soluciones
• claire • hugo • elvis Puede ejecutar los comandos useradd y passwd con el argumento de nombre de usuario individual. Aunque no se aborde en este clase, también podría "establecer un script" para la operación; quizás algo así: for NAME in faraday jack kate james walt ben claire hugo elvis do useradd ${NAME} echo "password" | passwd --stdin ${NAME} done
Práctica Cuestionario
Mantenimiento de cuentas 1.
¿Qué comando bloquearía la cuenta de elvis? usermod -L elvis
2.
¿Qué comando la desbloquearía? usermod -U elvis
3.
¿Qué comando haría que la cuenta de elvis caducara el 15 de marzo de 2012? chage -E 2012-03-15 elvis
Prueba
Prueba de criterios Ejercicio
Administración de políticas de vigencia de contraseñas El instructor los dividirá en grupos pequeños. En cada grupo, debatan qué políticas de vigencia de contraseñas serían apropiadas para los profesores (que usarán la máquina durante un tiempo prolongado), los estudiantes de posgrado (que usarán la máquina durante unos pocos años) y los practicantes de verano (que sólo usarán la máquina durante el verano). • Profesores: faraday, juliet • Estudiantes de posgrado: jack, kate, james • Practicantes de verano: walt, ben, claire, hugo Asigne una política de contraseñas a cada grupo de usuarios en serverX.
322
RH135-6-es-2-20110131
Administración de las cuentas de usuario
1.
Determine una política de vigencia de contraseñas adecuada para cada grupo de usuarios (profesores, estudiantes de posgrado y practicantes), que incluya: • Fecha de caducidad de la cuenta (si corresponde). • El tiempo antes de que se deban cambiar las contraseñas. • El límite de tiempo a partir del cual si no se cambia la contraseña, la cuenta quedará inactiva.
2.
Una vez determinado, use chage para implementar la política para los usuarios agregados en la sección anterior, según su función. chage -E 2010-08-31 -M 30 -I 7 username
3.
Además, exija a los usuarios que cambien la contraseña al iniciar sesión por primera vez. chage -d 0 username
RH135-6-es-2-20110131
323
Apéndice A. Soluciones
Cuentas de usuario de red con LDAP Práctica Cuestionario
Configuración de cliente LDAP 1.
¿Cuáles son los siete datos que generalmente proveen los servicios de información de cuenta de usuario? username:password:UID:GID:GECOS:/home/dir:shell
2.
¿Qué "otro" tipo de información puede proveer un servicio de directorios de red? Método de autenticación
3.
¿Cuáles son los tres datos que deben configurarse en una máquina cliente para obtener información de usuario de un servicio de directorios LDAP? Nombre de host completo del servidor, DN de base y certificado CA.
4.
¿Qué función ejecuta el comando getent passwd ldapuser1? ¿Por qué es útil? El comando getent passwd ldapuser1 imprimirá la información de la cuenta para el usuario ldapuser1. Es útil buscar información sobre las cuentas de usuarios, como directorios hogar, intérprete de comandos, nombres, etc.
Práctica Caso de estudio
Automontaje de directorios NFS Estos pasos deben ejecutarse en serverX. Actualmente, su empresa toma varios clientes nuevos: 1.
Organization of Secret Hidden Undertakings (OSHU)
2.
Race Along the Lake Investments, Inc. (RALII)
Su empresa tiene un nuevo servidor NFS para almacenar archivos relacionados con esos clientes "especiales" denominados instructor.example.com, con dos recursos compartidos: /var/ nfs/oshu y /var/nfs/ralii. La expectativa es que se agregarán más recursos compartidos a medida que se incorporen nuevos clientes. Las estaciones de trabajo deben usar autofs para montar automáticamente estos recursos compartidos en /special/oshu y /special/ralii, respectivamente, con permisos de sólo lectura. Dada la perspectiva de que nuevos clientes se incorporarán en breve, implemente eso mediante el uso de metacaracteres y comodines autofs. 1.
324
Modifique la configuración del programa de automontaje en serverX de modo que en el caso de acceso a cualquier directorio en /special, el programa de automontaje montará la exportación de NFS instructor.example.com:/var/nfs/dirname allí, si esa exportación existe. En este ejemplo, "dirname" hace referencia a cualquier nombre de directorio posible:
RH135-6-es-2-20110131
Prueba de criterios
# cat /etc/auto.master /special /etc/auto.special # cat /etc/auto.special * -ro instructor.example.com:/var/nfs/&
2.
Vuelva a cargar el servicio con service autofs reload.
3.
Pruebe accediendo de forma alternativa al contenido de /special/oshu y /special/ ralii.
Prueba
Prueba de criterios Caso de estudio
Obtener información de usuarios de red desde un servicio de directorio LDAP Ahora configurará serverX para obtener información acerca de los usuarios de red desde un servidor de directorio LDAP disponible para todas las máquinas en la clase. Esta es la información que se le proporcionó acerca del servidor LDAP: • Nombre de host: instructor.example.com • DN de la base de búsqueda: dc=example,dc=com • Certificado CA: http://instructor.example.com/pub/EXAMPLE-CA-CERT
1
Luego configurará serverX para montar automáticamente los directorios hogar de los usuarios de red basada en LDAP cuando inicien sesión. Esta es la información que se le proporcionó acerca del servidor de almacenamiento NFS que contiene los directorios hogar: • Nombre de host: instructor.example.com • Directorio exportado: /home/guests/ 1.
Inicie sesión en serverX como usuario root. Si usa ssh, incluya la opción -X para reenviar interfaces gráficas a su estación de trabajo.
2.
Use system-config-authentication para configurar serverX para obtener información de usuarios de red desde el servidor LDAP de la clase. 1.
Para "User Account Database", elija LDAP. a.
Para "LDAP Search Base DN:", ingrese dc=example,dc=com.
b.
Para el servidor LDAP:, ingrese instructor.example.com
RH135-6-es-2-20110131
325
Apéndice A. Soluciones
3.
c.
Seleccione la casilla de verificación "Use TLS to encrypt connects".
d.
Elija "Download CA Certificate...", e ingrese http://instructor.example.com/pub/ example-ca.crt.
2.
Para "Authentication Method", elija LDAP.
3.
Elija Apply.
Use el comando id para confirmar que el usuario ldapuserX (reemplace X por el número de su estación) está definido en el sistema. [root@server1 ~]# id ldapuser1 uid=1701(ldapuser1) gid=1701(ldapuser1) groups=1701(ldapuser1)
4.
Use el comando getent para buscar la información de usuario de ldapuser1. [root@server1 ~]# getent passwd ldapuser1 ldapuser1:*:1701:1701:LDAP Test User 1:/home/guests/ldapuser1:/bin/bash
5.
Inicie sesión en serverX como ldapuserX o cualquiera de los otros usuarios de red, con la contraseña "password". (No se preocupe si obtiene un mensaje de error al iniciar sesión acerca de un directorio hogar no existente; está previsto). [student@desktop1 ~]# ssh ldapuser1@server1 ldapuser1@server1's password: password Could not chdir to home directory /home/guests/ldapuser1: No such file or directory -bash-4.1$
6.
Modifique la configuración del programa de automontaje en serverX de modo que si se accede a algún directorio ldapuserX en /home/guests, el programa de automontaje intentará montar el directorio exportado NFS equivalente desde instructor.example.com:/home/guests/ldapuserX (Sugerencia: use sintaxis con comodines). 1.
Agregue la siguiente línea en /etc/auto.masters. /home/guests
2.
Cree el archivo /etc/auto.guests, con la siguiente línea única. *
3.
/etc/auto.guests
-rw,hard,intr
instructor.example.com:/home/guests/&
Reinicie el programa de automontaje. (Nota: En versiones anteriores de Red Hat Enterprise Linux 6, el script de servicio autofs tiene un error, y el restart (reinicio) estándar no funciona. [root@server1 ~]# service autofs stop Stopping automount: [root@server1 ~]# service autofs start
326
[
OK
]
RH135-6-es-2-20110131
Prueba de criterios
Starting automount:
7.
[
OK
]
Inicie sesión en serverX como ldapuserX, donde X es su número de estación, con la contraseña "contraseña". El directorio hogar del usuario debe montarse automáticamente. [student@desktop1 ~]$ ssh ldapuser1@server1 The authenticity of host 'server1 (192.168.0.101)' can't be established. RSA key fingerprint is 33:fa:a1:3c:98:30:ff:f6:d4:99:00:4e:7f:84:3e:c3. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'server1,192.168.0.101' (RSA) to the list of known hosts. ldapuser1@server1's password: password Last login: Thu Dec 16 14:59:49 2010 from instructor.example.com [ldapuser1@server1 ~]$ pwd /home/guests/ldapuser1 [ldapuser1@server1 ~]$ df Filesystem 1K-blocks Used Available Use% Mounted on ... instructor.example.com:/home/guests/ldapuser1 1032192 36864 943104 4% /home/guests/ldapuser1
RH135-6-es-2-20110131
327
Apéndice A. Soluciones
Control de acceso a los archivos Práctica Ejercicio
Administración de grupos Ahora colocaremos a los usuarios que se crearon anteriormente en serverX en grupos. Grupo
Nombre del grupo
Lista de usuarios
Profesores
profs
faraday, juliet, elvis
Estudiantes de posgrado
grads
jack, kate, james, elvis
Practicantes de verano
interns
walt, ben, claire, hugo, elvis
Tabla A.2. Asignaciones de usuarios y grupos Tenga en cuenta que deberá crear un usuario adicional con el nombre elvis, que deberá colocarse en los tres grupos. 1.
Cree los grupos especificados en la tabla anterior y asigne los miembros correspondientes de cada grupo. Si no tiene las siguientes cuentas de usuario, agréguelas con useradd username
2.
[root@serverX [root@serverX [root@serverX [root@serverX
~]# ~]# ~]# ~]#
groupadd profs usermod -aG profs faraday usermod -aG profs juliet usermod -aG profs elvis
[root@serverX [root@serverX [root@serverX [root@serverX [root@serverX
~]# ~]# ~]# ~]# ~]#
groupadd grads usermod -aG grads usermod -aG grads usermod -aG grads usermod -aG grads
[root@serverX [root@serverX [root@serverX [root@serverX [root@serverX [root@serverX
~]# ~]# ~]# ~]# ~]# ~]#
groupadd interns usermod -aG interns usermod -aG interns usermod -aG interns usermod -aG interns usermod -aG interns
jack kate james elvis
walt ben claire hugo elvis
Use el comando id para verificar las membresías del grupo de todos los usuarios. [root@serverX ~]# id juliet uid=503(juliet) gid=503(juliet) groups=503(juliet),513(profs) [root@serverX ~]# id faraday uid=504(faraday) gid=504(faraday) groups=504(faraday),513(profs) [root@serverX ~]# id jack uid=505(jack) gid=505(jack) groups=505(jack),514(grads) [root@serverX ~]# id kate uid=506(kate) gid=506(kate) groups=506(kate),514(grads)
328
RH135-6-es-2-20110131
Prueba de criterios
[root@serverX ~]# id james uid=507(james) gid=507(james) groups=507(james),514(grads) [root@serverX ~]# id walt uid=508(walt) gid=508(walt) groups=508(walt),515(interns) [root@serverX ~]# id ben uid=509(ben) gid=509(ben) groups=509(ben),515(interns) [root@serverX ~]# id claire uid=510(claire) gid=510(claire) groups=510(claire),515(interns) [root@serverX ~]# id hugo uid=511(hugo) gid=511(hugo) groups=511(hugo),515(interns) [root@serverX ~]# id elvis uid=512(elvis) gid=512(elvis) groups=512(elvis),513(profs),514(grads),515(interns)
Permisos de directorio de colaboración En el cuestionario que se encuentra a continuación, use los permisos POSIX ACL y estándar, según corresponda, para resolver los problemas. 1.
Dado un directorio normal, donde el usuario propietario tiene permisos rwx, el grupo propietario tiene permisos rwx y otro tiene permisos ---, ¿qué comando otorgaría a un segundo grupo permisos r-x sin cambiar los permisos del grupo propietario existente o del otro? setfacl -m g:group:r-x /directory
2.
¿Qué comando otorgaría automáticamente acceso de lectura y escritura para ese segundo grupo a cualquier archivo recientemente creado en ese directorio? setfacl -m d:g:group:rw /directory
3.
Pregunta adicional. ¿Qué comando configuraría automáticamente el grupo propietario como el grupo propietario de cualquier archivo creado recientemente en ese directorio? chmod g+s /directory o chmod 2770 /directory si se suponen los permisos del directorio original según se detallan en la primera pregunta. Debe asegurarse de que el directorio tenga el permiso set-GID. Se deduce que no hay una manera de hacer esto con setfacl.
Prueba
Prueba de criterios Caso de estudio
Uso de ACL para otorgar y limitar el acceso En este laboratorio se utilizan usuarios y grupos creados anteriormente en serverX. Si aún no tiene los usuarios y grupos definidos, ejecute lab-add-users en serverX. Los estudiantes de posgrado necesitan un directorio de colaboración denominado /opt/ research, donde puedan almacenar los resultados de investigación generados. Solo los miembros de los grupos profs y grads deben poder crear archivos nuevos en el directorio, y los nuevos archivos deben tener las siguientes propiedades:
RH135-6-es-2-20110131
329
Apéndice A. Soluciones
• El directorio debe ser propiedad del usuario root. • Los archivos nuevos deben pertenecer al grupo grads. • Los profesores (miembros del grupo profs) deben tener automáticamente acceso de lectura y escritura a los nuevos archivos. • Los practicantes de verano (miembros del grupo interns) deben tener automáticamente acceso de solo lectura a los nuevos archivos. • Otros usuarios (que no sean miembros de grupos profs, grads ni interns) no deben poder acceder al directorio y ni a su contenido en absoluto. Consulte el apéndice Soluciones cuando haya finalizado de revisar su solución, para ver algunos métodos posibles. •
Una posible solución es: [root@serverX [root@serverX [root@serverX [root@serverX [root@serverX [root@serverX [root@serverX
~]# ~]# ~]# ~]# ~]# ~]# ~]#
mkdir /opt/research chgrp grads /opt/research/ chmod 2770 /opt/research/ setfacl -m g:profs:rwx /opt/research/ setfacl -m g:interns:rx /opt/research/ setfacl -m d:g:profs:rw /opt/research/ setfacl -m d:g:interns:r /opt/research/
Las primeras tres líneas crean /opt/research y aseguran que sea propiedad del usuario root, grupo grads, y que el usuario y grupo propietarios tengan acceso a los archivos, y a la lectura y escritura de estos, y que grads adquirirá los archivos creados en el directorio (set-GID está activo). Las siguientes dos líneas otorgan permisos adecuados para el grupo profs y el grupo interns en el directorio mediante ACL. Las siguientes dos líneas otorgan permisos adecuados para el grupo profs y grupo interns en los archivos creados recientemente en el directorio a través de ACL predeterminadas.
330
RH135-6-es-2-20110131
Prueba de criterios
nota Una solución un poco mejor y más sofisticada es reemplazar las últimas dos líneas de la solución de arriba de la siguiente manera: [root@serverX ~]# setfacl -m d:g:profs:rwx /opt/research/ [root@serverX ~]# setfacl -m d:g:interns:rx /opt/research/ [root@serverX ~]# setfacl -m d:o::- /opt/research/
Al agregar el permiso de ejecución a las ACL predeterminadas, los miembros de los grupos profs y interns automáticamente podrán acceder a los subdirectorios recientemente creados de /opt/research. (Los archivos regulares no obtienen el permiso de ejecución efectivo automáticamente, porque la máscara ACL predeterminada en un archivo nuevo regular es rw-). La última línea de la solución mejorada de arriba elimina todos los permisos del otro para los archivos creados recientemente. No es estrictamente necesario porque los permisos del directorio /opt/research ya bloquean todos los accesos para el otro al directorio y su contenido; no obstante, se muestra aquí como un ejemplo útil.
Use ls y getfacl para confirmar su solución. [root@serverX ~]# getfacl /opt/research/ getfacl: Removing leading '/' from absolute path names # file: opt/research/ # owner: root # group: grads # flags: -suser::rwx group::rwx group:interns:r-x group:profs:rwx mask::rwx other::--default:user::rwx default:group::rwx default:group:interns:r-default:group:profs:rwdefault:mask::rwx [root@serverX ~]# date > /opt/research/foo [root@serverX ~]# ls -l /opt/research/foo -rw-rw----+ 1 root grads 29 Dec 23 12:31 /opt/research/foo [root@serverX ~]# getfacl /opt/research/foo getfacl: Removing leading '/' from absolute path names # file: opt/research/foo # owner: root # group: grads user::rwgroup::rwx #effective:rwgroup:interns:r-x #effective:r-group:profs:rwx #effective:rwmask::rw-
RH135-6-es-2-20110131
331
Apéndice A. Soluciones
other::---
nota Si usó configuraciones alternativas arriba, la salida de getfacl mostrará lo siguiente: default:group:interns:r-x default:group:profs:rwx default:other::---
332
RH135-6-es-2-20110131
Administración de SELinux
Administración de SELinux Práctica Cuestionario
Conceptos básicos de SELinux 1.
¿A cuáles de las siguientes opciones SELinux aplica el contexto de seguridad? (Marque todas las opciones que correspondan). (seleccione uno o más de los siguientes…) a. Puertos b. Procesos c. Archivos d. Directorios e. Sistemas de archivos remotos
2.
SELinux puede usarse para: (seleccione uno o más de los siguientes…) a. Impedir que un servicio se ejecute en otros puertos. b. Proteger los datos de usuario de aplicaciones como el servidor web. c. Impedir que sistemas remotos accedan a puertos locales.
d.
Esto describe un cortafuego. Mantener el sistema actualizado.
e.
Esto describe algo como Red Hat Network. Acceder a un servidor web. Esto describe un navegador web como Firefox.
3.
¿Cuáles de las siguientes opciones corresponden a tipos estándares de contexto de SELinux? (seleccione uno o más de los siguientes…) a. selinux_type
b.
Esto no existe. object_r
c. d. e.
Esta es una función de SELinux. httpd_sys_content_t tmp_t user_u Este es un usuario de contexto de SELinux.
RH135-6-es-2-20110131
333
Apéndice A. Soluciones
Práctica Cuestionario
Modos de SELinux 1.
El modo permisivo de SELinux permite el registro, pero no la protección.
2.
El modo obligatorio de SELinux protege el sistema.
3.
¿Cuáles de los siguientes son modos de SELinux válidos? (seleccione uno o más de los siguientes…) a. Obligatorio b. Prueba c. Permisivo d. Deshabilitado e. Registro
Práctica Ejercicio
Cambio de los modos permisivo y obligatorio 1.
En serverX, cambie el modo predeterminado de SELinux a permisivo y vuelva a arrancar el sistema. Modifique el archivo /etc/sysconfig/selinux para que la línea se vea de la siguiente manera: SELINUX=permissive
Vuelva a arrancar su servidor virtual: [root@serverX ~]# init 6
2.
Después de arrancar nuevamente el sistema, verifique que se encuentre en modo permisivo. [root@serverX ~]# getenforce Permissive
3.
Cambie el modo predeterminado de SELinux a obligatorio. Modifique el archivo /etc/sysconfig/selinux para que la línea se vea de la siguiente manera: SELINUX=enforcing
4.
Cambie el modo actual de SELinux a obligatorio. [root@serverX ~]# setenforce 1 [root@serverX ~]# getenforce
334
RH135-6-es-2-20110131
Administración de SELinux
Enforcing
Práctica Ejercicio
Corrección de contextos de archivos de SELinux Se le ha solicitado que ajuste la configuración DNS de su máquina remota para que coincida exactamente con la configuración de su máquina de escritorio. Usted decide que la forma más fácil es copiar el archivo /etc/resolv.conf de la máquina local en la máquina remota. 1.
Transfiera el archivo /etc/resolv.conf de su máquina de escritorio al directorio hogar de root en serverX. scp /etc/resolv.conf root@serverX:
2.
Use el intérprete de comandos para conectarse a serverX como usuario root. Todos los pasos siguientes deben ejecutarse en su servidor.
3.
Observe el contexto de SELinux de /etc/resolv.conf inicial. ls -Z /etc/resolv.conf Contexto /etc/resolv.conf original: system_u:object_r:net_conf_t:s0
4.
Mueva resolv.conf del directorio hogar de root a /etc/resolv.conf. mv /root/resolv.conf /etc
5.
Observe el contexto de SELinux de /etc/resolv.conf recientemente copiado. ls -Z /etc/resolv.conf Contexto /etc/resolv.conf nuevo: unconfined_u:object_r:admin_home_t:s0
6.
Restaure el contexto de SELinux de /etc/resolv.conf recientemente posicionado. restorecon /etc/resolv.conf
7.
Observe el contexto de SELinux de /etc/resolv.conf restaurado. ls -Z /etc/resolv.conf Contexto /etc/resolv.conf restaurado: system_u:object_r:net_conf_t:s0
Práctica Cuestionario
Control de las violaciones de SELinux 1.
¿Qué archivo contiene entradas de registro que proporcionan identificadores únicos para las violaciones de SELinux? /var/log/audit/audit.log.
RH135-6-es-2-20110131
335
Apéndice A. Soluciones
2.
Dado el UUID de una violación de SELinux, ¿qué comando genera un informe de texto del problema? sealert -l UUID .
Prueba
Prueba de criterios Ejercicio
Administración de SELinux Antes de comenzar... Antes de comenzar, ejecute el comando lab-setup-selinux en desktopX. 1.
Inicie sesión en serverX como usuario student. Abra un terminal y cambie al usuario root.
2.
Copie el fichero web_content.tgz de instructor:/var/ftp/pub/materials en /tmp.
[root@serverX ~]# cp /net/instructor/var/ftp/pub/materials/web_content.tgz /tmp
3.
Extraiga el fichero en /tmp. [root@serverX ~]# cd /tmp [root@serverX tmp]# tar -xvf web_content.tgz
4.
Mueva el directorio extraído a /var/www/html. [root@serverX tmp]# mv web_content /var/www/html/ [root@serverX tmp]# cd
5.
Inicie el servicio web. [root@serverX ~]# service httpd start
6.
Intente observar el nuevo directorio con el navegador web al visitar la URL http://serverX/ web_content. [root@serverX ~]# elinks -dump http://serverX/web_content
7.
Busque en el sistema los UUID de cualquier violación de SELinux que pueda haber generado su intento de navegar el contenido recientemente instalado. [root@serverX ~]# cat /var/log/messages | grep 'sealert -l'
8.
Genere informes de texto sobre las violaciones. [root@serverX ~]# sealert -l UUID > ~/httpd_selinux.log
336
RH135-6-es-2-20110131
Administración de SELinux
Donde UUID es el UUID dado en /var/log/messages. 9.
Siga las instrucciones del informe para restaurar los contextos de SELinux del contenido recientemente instalado. Busque la sección Fix Command en ~/httpd_selinux.log. [root@serverX ~]# restorecon -Rv /var/www/html/web_content/
10. Confirme que pueda ver el material desde su navegador web al visitar la URL http://serverX/ web_content. [root@serverX ~]# elinks -dump http://serverX/web_content
RH135-6-es-2-20110131
337
Apéndice A. Soluciones
Instalación y administración de software Práctica Ejercicio
Búsqueda e instalación de paquetes Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
Intente ejecutar el comando gnuplot. Se le indicará que no está instalado. [root@serverX ~]# gnuplot -bash: gnuplot: command not found
2.
Busque paquetes de trazado. [root@serverX ~]# yum search plot ... gnuplot.x86_64 : A program for plotting mathematical expressions and data ...
3.
Obtenga más información acerca del paquete gnuplot. [root@serverX ~]# yum info gnuplot Name : gnuplot Arch : x86_64 ...
4.
Instale el paquete gnuplot. [root@serverX ~]# yum install -y gnuplot
5.
Intente quitar el paquete gnuplot, pero seleccione "no". [root@serverX ~]# yum remove gnuplot Removing: gnuplot x86_64 4.2.6-2.el6 Is this ok [y/N]: n
@base
1.1 M
¿Cuántos paquetes se quitarían? 1 6.
Intente quitar el paquete gnuplot-common, pero seleccione "no". [root@serverX ~]# yum remove gnuplot-common Removing: gnuplot-common x86_64 4.2.6-2.el6 Removing for dependencies: gnuplot x86_64 4.2.6-2.el6 Is this ok [y/N]: n
338
@base
1.3 M
@base
1.1 M
RH135-6-es-2-20110131
Administración de SELinux
¿Cuántos paquetes se quitarían? 2
Actividad de lectura: Grupos de componentes YUM Revise la página del manual yum(1) y lea las secciones que describen los comandos yum que comienzan con "group". 1.
yum grouplist Enumera todos los grupos disponibles.
2.
yum groupinfo Proporciona información sobre un grupo particular, incluido qué paquetes componen el grupo.
3.
yum groupinstall Instala un grupo de paquetes.
nota Solo el paquete marcado con mandatory y default se instalará cuando el grupo de componente esté instalado.
4.
yum grouperase Elimina un grupo.
5.
yum groupupdate Actualiza un grupo.
Práctica Ejercicio
Administración de grupos de componentes YUM En este ejercicio, recopilará información acerca del grupo de componentes “Servidor de base de datos PostgreSQL” y luego lo instalará en serverX. 1.
Enumere todos los grupos de componentes disponibles. [root@serverX ~]# yum grouplist
2.
Obtenga más información acerca del grupo de componentes PostgreSQL Database Server, incluso una lista de los paquetes incluidos. [root@serverX ~]# yum groupinfo "PostgreSQL Database Server"
RH135-6-es-2-20110131
339
Apéndice A. Soluciones
3.
Instale el grupo de componentes PostgreSQL Database Server. [root@serverX ~]# yum groupinstall "PostgreSQL Database Server"
Práctica Ejercicio
Manipulación de software de terceros En este ejercicio, recopilará información acerca de un paquete de terceros, extraerá los archivos del paquete y lo instalará completo en su sistema desktopX. 1.
Descargue wonderwidgets-1.0-4.x86_64.rpm de http://instructor/pub/materials.
2.
¿Qué archivos contiene? rpm -q -p wonderwidgets-1.0-4.x86_64.rpm -l
3.
¿Qué scripts contiene? rpm -q -p wonderwidgets-1.0-4.x86_64.rpm --scripts
4.
¿Cuánto espacio en disco usará al instalarlo? rpm -q -p wonderwidgets-1.0-4.x86_64.rpm -i
5.
Use yum localinstall para instalar el paquete. yum localinstall wonderwidgets-1.0-4.x86_64.rpm
Práctica Ejercicio
Uso de repositorios YUM Configurará su servidor para usar un repositorio yum aparte para obtener actualizaciones y para actualizar su máquina. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
Cree el archivo /etc/yum.repos.d/errata.repo para habilitar el repositorio de actualizaciones que se encuentra en la máquina del instructor. Este debe acceder al contenido que se encuentra en la siguiente URL: ftp://instructor.example.com/pub/rhel6/ Errata. Cree el archivo /etc/yum.repos.d/errata.repo con el siguiente contenido: [updates] name=Red Hat Updates baseurl=ftp://instructor.example.com/pub/rhel6/Errata enabled=1 gpgcheck=1
340
RH135-6-es-2-20110131
Prueba de criterios
2.
Actualice todo software relevante provisto por el repositorio usando yum update. [root@serverX ~]# yum update -y
Prueba
Prueba de criterios Caso de estudio
Actualizar e instalar software Antes de comenzar... Ejecute lab-setup-server en desktopX para preparar serverX para el ejercicio. Tiene que administrar un nuevo servidor, serverX, con requisitos de software muy específicos. Debe tener instaladas las últimas versiones de los siguientes paquetes: kernel (paquete existente con una actualización) xsane-gimp (paquete nuevo) bzip2 (paquete actualizado) Por razones de seguridad, no debe tener instalado el paquete xinetd. No instale todas las actualizaciones. Instale solamente las actualizaciones para los paquetes enumerados arriba, si están disponibles. Los paquetes actualizados se pueden encontrar en la siguiente URL: ftp:// instructor.example.com/pub/rhel6/Errata. Cuando esté listo para revisar su trabajo, ejecute lab-grade-packages-2 en serverX. 1. 2.
[root@desktopX ~]# lab-setup-server
En serverX, cree el archivo /etc/yum.repos.d/updates.repo con el siguiente contenido: [updates] name=Red Hat Updates baseurl=ftp://instructor.example.com/pub/rhel6/Errata enabled=1 gpgcheck=1
3.
Instale los paquetes y las actualizaciones especificados, y asegúrese de especificar los paquetes individuales, para que no se realice una actualización completa. Tenga en cuenta que, cuando se nombran explícitamente los paquetes en la línea de comando, install y update son esencialmente sinónimos. (No se preocupe demasiado si el conteo del paquete no es idéntico al detallado abajo).
RH135-6-es-2-20110131
341
Apéndice A. Soluciones
[root@serverX ~]# yum install kernel xsane-gimp bzip2 ... Transaction Summary ================================================================================ Install 15 Package(s) Upgrade 2 Package(s) Total download size: 39 M Is this ok [y/N]: y ... Importing GPG key 0xFD431D51 "Red Hat, Inc. (release key 2) " from /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release Is this ok [y/N]: y Importing GPG key 0x2FA658E0 "Red Hat, Inc. (auxiliary key) " from /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release Is this ok [y/N]: y ... Complete!
4.
Asegúrese de que el paquete xinetd se haya eliminado. [root@serverX ~]# yum erase xinetd ... No Match for argument: xinetd Package(s) xinetd available, but not installed. No Packages marked for removal
En este caso, xinetd no estaba instalado. 5.
342
[root@serverX ~]# lab-grade-packages-2
RH135-6-es-2-20110131
Administración de servicios instalados
Administración de servicios instalados Instalación de servicios nuevos ¿Qué comando se usa generalmente para realizar cada uno de estos pasos para implementar un servicio nuevo en un sistema Red Hat Enterprise Linux? • Instalar el software: yum • Iniciar el servicio: service • Habilitar el servicio durante el momento de arranque: chkconfig • Probar los servicios: Esto se tratará en las siguientes páginas.
Diagnóstico de problemas de servicio de red Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. [root@serverX ~]# service httpd restart
Hemos reiniciado nuestro servicio httpd. ¿Cómo podemos confirmar que esté funcionando? Intente acceder a este mediante un explorador web. Suponiendo que el reinicio falle, a continuación se muestran la revisiones que puede intentar para diagnosticar el problema. Cuáles son los comandos que mostrarían lo siguiente: 1.
¿El demonio se está ejecutando? Si el demonio no se está ejecutando, ¿cuáles son los pasos siguientes que podría seguir? a.
Examinar /var/log/messages o archivos de registro específicos del servicio
b.
Intentar iniciar el demonio manualmente desde la línea de comando y verificar si hay reclamos Para comprobar que el demonio se está ejecutando, ejecute el siguiente comando: [root@serverX ~]# ps aux | grep httpd
nota Es posible que tenga que identificar qué demonios se iniciaron por el script de servicio. Por ejemplo, el script de servicio smb inicia nmbd y smbd.
2.
¿El demonio se ha enlazado a los puertos correctos?
RH135-6-es-2-20110131
343
Apéndice A. Soluciones
Si el demonio se está ejecutando, pero no está en modo de escucha en el puerto correcto, ¿cuáles son los pasos siguientes que podría seguir? a.
Examinar los archivos de configuración del servicio, prestando particular atención a cualquier opción de configuración relacionada con el enlace a la red.
b.
Considerar la configuración de SELinux. ¿El demonio está intentando conectarse a un puerto no estándar? ¿Hay errores de SELinux en los registros? Para comprobar que el demonio se haya enlazado a los puertos correctos, ejecute lo siguiente: [root@serverX ~]# lsof -i | grep httpd httpd 310 root 4u IPv6 59310 httpd 313 apache 4u IPv6 59310
0t0 0t0
TCP *:http (LISTEN) TCP *:http (LISTEN)
¿Qué puertos usan los demonios del servicio? ¿están enlazados a esos puertos? ¿Están enlazados a esos puerto solo para el host local (127.0.0.1 o ::1) o están enlazados a direcciones IP particulares o a todas las direcciones IP (0.0.0.0, * o ::)? 3.
¿Un cliente externo puede conectarse al puerto? Si el demonio se está ejecutando y está enlazado al puerto correcto, pero los clientes externos no pueden conectarse, ¿cuál es el probable candidato? a.
Probablemente, el problema esté relacionado con el cortafuegos a nivel del kernel. Para verificar que un cliente externo pueda conectarse al puerto, ejecute lo siguiente en desktopX: [root@serverX ~]# nc serverX 80 GET ...
Prueba
Prueba de criterios Ejercicio
Implementar un servidor FTP Instalar, iniciar, habilitar y probar el servicio FTP. Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
344
Instalar el software del servidor FTP, que está distribuido como el paquete vsftpd.
RH135-6-es-2-20110131
Administración de servicios instalados
Compruebe si el paquete ya está instalado. En caso de que no, instálelo. [root@serverX ~]# rpm -q vsftpd package vsftpd is not installed [root@serverX ~]# yum install -y vsftpd
2.
Inicie el servicio relacionado. Verifique que el servicio ya esté en ejecución. En caso de que no, inícielo. [root@serverX ~]# service vsftpd status vsftpd is stopped [root@serverX ~]# service vsftpd start Starting vsftpd for vsftpd:
3.
[
OK
]
Configure el servicio para que se inicie automáticamente al inicio. [root@serverX ~]# chkconfig vsftpd on
4.
Desde su estación de trabajo, use el cliente lftp para conectar su servidor y verificar que puede recibir datos de este. [student@desktopX ~]# lftp serverX lftp localhost:~> ls drwxr-xr-x 2 0 0 lftp server1:~> quit [student@desktopX ~]#
5.
4096 May 26
2010 pub
Aun si su servicio se está ejecutando satisfactoriamente, responda las preguntas a continuación sobre solución de problemas para confirmar que el servicio se haya implementado correctamente. • ¿El demonio se está ejecutando? [root@serverX ~]# ps aux | grep vsftpd root 2212 0.0 0.1 51816 732 ? etc/vsftpd/vsftpd.conf
Ss
Dec22
0:00 /usr/sbin/vsftpd /
• ¿El demonio se enlazó al puerto correcto (TCP puerto 21)? [root@serverX ~]# netstat -tulpn | grep vsftpd tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2212/vsftpd
• ¿Un cliente externo puede conectarse al puerto? Desde su estación de trabajo, intente conectarse al demonio FTP directamente usando el cliente nc. [student@desktopX ~]# nc 192.168.0.X+100 21 220 (vsFTPd 2.2.2) Ctrl+c
RH135-6-es-2-20110131
345
Apéndice A. Soluciones
[student@desktopX ~]#
346
RH135-6-es-2-20110131
Análisis y almacenamiento de registros
Análisis y almacenamiento de registros Archivos de registro predeterminados Escriba el nombre del archivo de registro al revisar el contenido de /etc/rsyslog.conf 1.
Todos los mensajes relacionados con autenticaciones van a /var/log/secure serverX.
2.
Todo lo relacionado con el correo electrónico va a /var/log/maillog .
3.
Los mensajes relacionados con cron van a /var/log/cron .
4.
Todos los otros mensajes enviados con prioridad info o mayor se guardan en /var/ log/messages .
Práctica Cuestionario
Revisar rsyslog Responda las siguientes preguntas: 1.
¿Cuáles son los dos campos que se utilizan para la coincidencia de eventos de registro? Recurso y prioridad
2.
¿Cuál es el efecto de un comodín en el primer campo? Coincide con todos los recursos.
3.
¿Cuál es el efecto de un comodín en el segundo campo? Coincide con todas las prioridades.
4.
¿Es posible registrar el mismo evento de registro en más de un registro? Sí, irá a cualquier registro cuyos criterios coincidan.
Práctica Lista de verificación de rendimiento
Analizar un informe de resumen de registro Determine la cantidad de espacio libre para el sistema de archivos de usuario root en función del último informe de LogWatch en serverX. Abra el correo electrónico de usuario root. [root@serverX ~]# mail
Busque y lea el último informe de LogWatch.. Si no existe un informe de LogWatch, ejecute el comando logwatch para generar uno manualmente. [root@serverX ~]# mail
RH135-6-es-2-20110131
347
Apéndice A. Soluciones
Heirloom Mail version 12.4 7/29/08. Type ? for help. "/var/spool/mail/root": 1 message 1 new >N 1 [email protected] Tue Jan 1 00:25 96/2948 & Enter
"Logwatch for serverX."
(use Space to scroll to the end) ... --------------------- Disk Space Begin -----------------------Filesystem Size /dev/mapper/vgsrv-root 3.3G /dev/vda1 248M /dev/mapper/vgsrv-home 248M
Used Avail Use% Mounted on 2.3G 30M
876M 206M
73% / 13% /boot
11M
225M
5% /home
---------------------- Disk Space End -------------------------
###################### Logwatch End #########################
Registre la cantidad de espacio libre para el sistema de archivos /: En el ejemplo que se muestra arriba, 876 M.
Práctica Caso de estudio
Redirigir los correos electrónicos de resumen de registro Cambie la configuración de logwatch en serverX para enviar informes de resumen de registro al usuario student en lugar de al usuario root. Pregunta adicional: ¿Cómo enviaría los informes de logwatch tanto a student como a root? 1.
Modifique el archivo /etc/logwatch/conf/logwatch.conf para incluir MailTo=student.
2.
Envíelo tanto a student como a root; cambie la línea a: MailTo = student root
3.
Ejecute el comando:logwatch [root@serverX]# logwatch
4.
348
Revise el correo electrónico de student y root para ver si existen informes nuevos.
RH135-6-es-2-20110131
Prueba de criterios
Prueba
Prueba de criterios Caso de estudio
Mensajes de depuración de registro Su empresa desea incluir un registro de depuración en su servidor para analizarlo. Redirija todos los mensajes de nivel de depuración (y de prioridad superior) a un archivo con el nombre /var/ log/debug.log. 1.
Configure rsyslog para crear un debug.log en el directorio /var/log/, que recopile los mensajes de depuración de todos los servicios. Agregue esta línea a /etc/rsyslog.conf: *.debug
2.
/var/log/debug.log
Active los cambios realizados a rsyslog. [root@serverX ~]# service rsyslog restart Shutting down system logger: Starting system logger:
3.
[ [
OK OK
] ]
Use el comando logger para enviar un mensaje a rsyslogd con prioridad debug al nuevo archivo de registro. [root@serverX ~]# logger -p debug Testing debug [root@serverX ~]# tail /var/log/debug.log Jan 5 11:03:04 server1 root: Testing debug
Observe que el mensaje no se mostrará en /var/log/messages si lo configuró y lo probó correctamente, dado que /var/log/messages solo obtiene mensajes de prioridad info y superior (no debug).
RH135-6-es-2-20110131
349
Apéndice A. Soluciones
Administración de procesos Práctica Ejercicio
Administración de procesos Antes de comenzar... Ejecute lab-setup-processes en serverX para prepararse para el ejercicio. [root@serverX ~]# lab-setup-processes
1.
Cambie la prioridad del proceso que está usando la mayoría de los recursos de CPU a 5. [root@serverX ~]# top ... PID USER PR NI 26669 root 22 2 26670 root 22 2 ...
VIRT 3828 4008
RES 84 280
SHR S %CPU %MEM 12 R 78.3 0.0 156 S 21.2 0.1
TIME+ COMMAND 0:18.41 hippo 0:04.94 process101
En top, presione la tecla r para cambiar el valor de niceness del proceso, luego ingrese el PID (26669 en el ejemplo de arriba). Presione 5 para cambiar el proceso a un valor de niceness de 5. 2.
Finalice el proceso que está usando la mayoría de los recursos de memoria. En top, presione la tecla M para ordenar por consumo de memoria. PID USER 26668 root
PR 22
NI VIRT 2 55032
RES 50m
SHR S %CPU %MEM 160 S 0.0 10.2
TIME+ COMMAND 0:00.18 elephant
Presione la tecla k para eliminar un proceso. Ingrese el PID (26668 en el ejemplo de arriba). Ingrese la señal, o simplemente acepte el valor predeterminado de 15. 3.
Cuando esté listo para revisar su trabajo, ejecute lab-grade-processes en serverX. [root@serverX ~]# lab-grade-processes * Checking for terminated process... PASS * Checking for reniced process... PASS
4.
Una vez que haya completado satisfactoriamente el ejercicio y revisado su trabajo, ejecute lab-cleanup-processes en serverX para limpiar. [root@serverX ~]# lab-cleanup-processes
Práctica Cuestionario
Programación de cronie 1.
350
¿Cuándo se ejecutarán los siguientes trabajos?
RH135-6-es-2-20110131
Prueba de criterios
a.
00 07 25 12 * /usr/local/bin/open_presents
Día de Navidad a las 7 a. m. b.
*/5 * *
*
* /usr/local/bin/take_stats
cada 5 minutos c.
07 03 *
*
* /sbin/service xend restart
todos los días a las 3:07 a. m. d.
30 16 *
*
5 /usr/local/bin/mail_checks
todos los viernes a las 4:30 p. m.
2.
Cree una entrada de cron que ejecutaría el script /usr/local/bin/vacuum_db una vez al mes, el primer día del mes. 05 02 1 * * /usr/local/bin/vacuum_db
(Ciertamente, la hora y los minutos reales son arbitrarios). 3.
En la pregunta anterior. ¿qué ocurre si la máquina estaba inactiva debido a mantenimiento el primero de febrero? ¿Cuál sería la mejor forma de asegurarse de que la base de datos no opere 2 (o más) meses entre cada vaciado? Escriba la tarea como un script del intérprete de comandos simple y suéltela en / etc/cron.monthly: #!/bin/bash /usr/local/bin/vacuum_db
Actividad de lectura: El comando at Con comando at, puede especificar una tarea (denominada trabajo) para que se ejecute en un momento específico en el futuro. El trabajo podría ser una copia de seguridad de una vez, una revisión de su sistema o el envío de una notificación en un momento específico. Los trabajos, que podrían tardar mucho en completarse, también son buenos candidatos para el comando at. Para hacer esto, simplemente use at para configurar la tarea que se ejecutará en un minuto o dos en el futuro. Luego, puede salir de la sesión de manera segura, dado que la tarea se ejecuta sin conexión desde la sesión del intérprete de comandos.
RH135-6-es-2-20110131
351
Apéndice A. Soluciones
El comando at debe especificar cuándo se debe ejecutar la tarea. Esa especificación puede ser una hora o una fecha específicas (Monday, 10pm[lunes a las 10 p. m.] o July 15[15 de julio], por ejemplo). Puede ser relativo al tiempo actual (now +5 min[ahora + 5 min], now +3 days[ahora + 3 días] o 4pm +1 week[4 p. m. + 1 semana]). Al agregar otras opciones, puede lograr que el correo se envíe cuando la tarea finalice (-m) o leer la tarea desde un archivo (-f file) en lugar de desde la entrada estándar. Después de escribir la línea de comando at presione Enter y proceda a escribir los comandos que se incluirán en el trabajo. La tarea puede constar de múltiples comandos. Cuando termine de escribir los comandos que se ejecutarán, presione Ctrl+d en una línea sola para completar la tarea. Por ejemplo: [user@host ~]$ at now +2 min at> echo "Hello from the at command" > /dev/pts/2 at> Ctrl-D job 1 at 2011-01-28 00:38 [user@host ~]$
Una vez que un trabajo at está configurado para ejecutarse, puede enumerar los números y las horas del trabajo con el comando atq. Para ver los comandos incluidos en el trabajo, escriba at -c # (reemplace # con el número de trabajo que desea ver). Antes de que se ejecute un trabajo, puede eliminarlo (siempre que sea su trabajo o que usted sea el usuario root) al escribir el comando atrm #, donde # se reemplaza con el número del trabajo.
Instrucciones Lea la página del manual at(1) centrando su atención en los comandos at, atq, atrm; luego responda las preguntas que se encuentran a continuación. 1.
¿Qué función ejecuta el comando at? El comando at ejecuta comandos en un momento especificado.
2.
¿Cuál es la sintaxis del comando at? at [OPTIONS] TIME
3.
¿Cómo expresaría las siguientes especificaciones de tiempo para el comando at? • ¿Para ejecutar un trabajo a las 4:00 p. m. en tres días a partir de ahora? • ¿Para ejecutar un trabajo a las 10:00 a. m. el próximo 31 de julio? • ¿Para ejecutar un trabajo a la 1:00 a. m., mañana? Para ejecutar un trabajo a las 4 p. m. en tres días a partir de ahora, haría at 4pm + 3 days (4 p. m. + 3 días) Para ejecutar un trabajo a las 10:00 a. m. el 31 de julio, haría at 10am Jul 31 (a las 10:00 a. m. el 31 de julio) Para ejecutar un trabajo a la 1:00 a. m. mañana, haría at 1am tomorrow (a la 1:00 a. m. mañana) Otras variaciones pueden funcionar; si tiene preguntas, consulte a su instructor.
4.
352
¿Qué función ejecuta el comando atq?
RH135-6-es-2-20110131
Prueba de criterios
El comando atq enumera los trabajos pendientes del usuario, a menos que el usuario sea el superusuario; en ese caso, se enumeran los trabajos de todos. 5.
¿Cuál es el formato de la salida del comando atq? Número, fecha, hora, cola y nombre de usuario del trabajo.
6.
¿Qué función ejecuta el comando atrm? El comando atrm elimina trabajos, identificados por el número de trabajo.
7.
¿Cuál es la sintaxis del comando atrm? atrm [-V] job [job...]
Práctica Lista de verificación de rendimiento
Programación de tareas aplazadas Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. Determine la hora del sistema actual. [root@serverX ~]# date Tue Jan 31 11:33:22 EST 2012
Programe el comando who interactivamente para que se ejecute 1 minuto en el futuro. Dado el ejemplo sobre la hora arriba, podríamos programar un comando como el siguiente: [root@serverX ~]# at 11:35am at> who at> Ctrl+d job 1 at 2012-01-31 11:35
De manera alternativa, podría usar at now +1min para crear un comando que se ejecute en un minuto en el futuro. Mientras espera que el comando at se complete, cree un archivo de texto simple que contenga el comando cal. Configúrelo para que pueda ejecutarse. [root@serverX ~]# echo cal > /tmp/cal-command [root@serverX ~]# chmod 755 /tmp/cal-command
Programe el comando creado arriba para que se ejecute a la hora del té, hoy y mañana. [root@serverX ~]# at teatime today at> /tmp/cal-command at> Ctrl+d job 2 at 2012-01-31 16:00 [root@serverX ~]# at teatime tomorrow at> /tmp/cal-command at> Ctrl+d job 3 at 2012-02-01 16:00
RH135-6-es-2-20110131
353
Apéndice A. Soluciones
Cambie de lugar con un compañero para realizar los dos pasos siguientes. • Use atq para confirmar las tareas pendientes. [root@serverX ~]# atq 2 at 2012-01-31 16:00 3 at 2012-02-01 16:00
• Use atrm para quitar la tarea programada para la hora del té de mañana. En función de la salida de atq arriba, el trabajo 3 es el trabajo que se debe eliminar. [root@serverX ~]# atrm 3 [root@serverX ~]# atq 2 at 2012-01-31 16:00
Vuelva a cambiar de lugar y revise su correo para confirmar que el comando who original se haya ejecutado. [root@serverX ~]# mail >N 1 root Tue Jan 31 11:35 14/541 "Output from your job " & Enter From [email protected] Tue Jan 31 11:35:00 2012 ... root pts/0 2012-01-31 10:40 (desktopX.example.com) & q
Prueba
Prueba de criterios Ejercicio
Administración de procesos Antes de comenzar... Ejecute manage_processes_start en serverX para prepararse para el ejercicio. [root@serverX ~]# manage_processes_start
Realice los siguientes pasos en serverX, a menos que se le indique de otro modo. 1.
Después de ejecutar el comando manage_processes_start, serverX debe estar muy lerdo.
2.
Determine qué proceso está usando una cantidad excesiva de memoria y finalícelo.
354
1.
En una terminal, inicie el programa top.
2.
En top, ingrese "O" para traer el menú de ordenamiento.
3.
Ingrese n para ordenar por uso de memoria.
RH135-6-es-2-20110131
Prueba de criterios
3.
4.
4.
Anote el PID del consumidor principal de memoria.
5.
Ingrese k para eliminar un proceso.
6.
Ingrese el PID del proceso que terminará.
7.
Haga clic en Enter para elegir el número de señal predeterminado 15.
Determine el proceso que está usando una cantidad excesiva de memoria de CPU y cambie el valor de niceness a 15. 1.
En una terminal, inicie el programa top.
2.
Anote los PID del consumidor principal de memoria.
3.
Ingrese r para cambiar el valor de niceness de un proceso.
4.
Ingrese el PID del proceso al que se cambiará el valor de niceness.
5.
Ingrese el nuevo valor de niceness de 15.
Cree un trabajo de cron de sistema que cada media hora reajuste todos los procesos que pertenecen al usuario elvis a un valor de niceness de 10. Sugerencia: Use la página del manual renice(1) para determinar la opción para ajustar todos los procesos del usuario. Con un editor de textos, cree el archivo /etc/cron.d/nice_elvis con el siguiente contenido: # Adjust the priority of processes owned by user elvis every half hour # to a nice value of 15. */30 * * * * /usr/bin/renice -n 15 -u elvis
5.
Registre un trabajo para que se ejecute una vez a las 3:00 a. m., que ejecute el comando ps aux. [root@serverX ~]# at 3am at> ps aux at> Ctrl+d
RH135-6-es-2-20110131
355
Apéndice A. Soluciones
Ajuste y mantenimiento del kernel Práctica Ejercicio
Carga de módulos y configuración de parámetros predeterminados Algunas funciones del cortafuego basado en el kernel se implementan como módulos opcionales del kernel, como llevar a cabo un rastreo de conexiones en un servidor ftp. Se le ha solicitado que cargue el módulo del kernel nf_conntrack_ftp y que lo configure adecuadamente para un servidor FTP en modo de escucha en el puerto TCP 21 y el puerto 8021. Los siguientes comandos deben ejecutarse en su serverX. 1.
Use el comando locate para asegurarse de que el módulo nf_conntrack_ftp sea compatible con su kernel. locate track_ftp
2.
Cargue el módulo de seguimiento de conexión FTP. modprobe nf_conntrack_ftp
3.
Asegúrese de que esté cargado. lsmod | grep track_ftp
4.
Descargue el módulo de seguimiento de conexión FTP. modprobe -r nf_conntrack_ftp
5.
Asegúrese de que esté descargado. lsmod | grep track_ftp
6.
Además del puerto 21 estándar, usted planea ejecutar un servidor FTP en el puerto 8021 no estándar. Examine las opciones que podrían permitirle especificar los puertos no estándares. modinfo nf_conntrack_ftp
7.
Configure un archivo /etc/modprobe.d/local.conf, que implementa esta opción una vez cargado. options nf_conntrack_ftp ports=21,8021
Práctica Ejercicio
Modificación de la línea de comando del kernel El dispositivo de bucle invertido se usa para montar archivos como si fueran dispositivos, lo cual es muy conveniente para acceder a las imágenes ISO, por ejemplo. De forma predeterminada, el
356
RH135-6-es-2-20110131
Prueba de criterios
kernel admite 8 dispositivos de bucle invertido. Modifique la línea de comando de kernel de su servidor remoto de modo que admita 32 en su lugar. Use su serverX para los siguientes pasos: 1.
Enumere los dispositivos de bucle invertido en el directorio /dev. (Todos los dispositivos de bucle invertido se denominan loop*). ¿Cuántos hay? _______________ ls /dev/loop* (8)
2.
Agregue el parámetro max_loop=32 a la línea de comando de kernel en /boot/grub/ grub.conf.
3.
Vuelva a arrancar su servidor.
4.
Confirme que el kernel haya arrancado con la línea de comando modificada. cat /proc/cmdline
5.
Enumere los dispositivos de bucle invertido en el directorio /dev. ¿Cuántos hay? _______________ ls /dev/loop* (32)
Demostración sobre la actualización de un kernel Complete los espacios en blanco a continuación mientras su instructor analiza los siguientes temas. 1.
¿Qué comando (familiar) realiza una actualización de kernel? yum update
2.
Los kernels nuevos se instalan; no se actualizan. Como cada archivo que pertenece al paquete de kernels tiene versiones, o reside en un directorio con versiones, RPM requiere que se instalen versiones simultáneas.
3.
De forma predeterminada, al "actualizar" un kernel, yum mantendrá un total de 3 versiones instaladas y automáticamente quitará cualquier versión anterior.
4.
Para usar el nuevo kernel, debe volver a arrancar su máquina.
5.
Si bien la máquina volverá a arrancar automáticamente en el kernel actualizado, aún puede seleccionar un kernel anterior en el menú del gestor de arranque GRUB.
6.
Si desea quitar un kernel manualmente, debe especificar no sólo el nombre del paquete (kernel), sino también el número de versión.
RH135-6-es-2-20110131
357
Apéndice A. Soluciones
Técnicas de recuperación del sistema Investigación y aprendizaje: GRUB Escriba las respuestas a cada una de las preguntas a continuación y remítase a la documentación disponible cuando sea necesario. 1.
¿Dónde podemos encontrar el arranque orientado y más específicamente, el archivo de configuración de GRUB? De la Unidad 17, el kernel está ubicado en /boot; página del manual grub(8), /boot/ grub/grub.conf
2.
¿Dónde podemos encontrar información acerca de qué significan las opciones de configuración en ese archivo de configuración? grub(8) no contiene información demasiado detallada, pero indica la información sobre el GRUB; la guía de implementación de Red Hat comprende una sección sobre "Configuración del gestor de arranque GRUB".
3.
¿Qué kernel arrancará de modo predeterminado (nombre de archivo)? En /boot/grub/grub.conf, la directiva predeterminada apunta al título de una entrada de arranque; la línea del kernel de la entrada de arranque apunta al ejecutable del kernel.
4.
¿Dónde pasa el sistema de archivos de usuario "root" al kernel y qué es el sistema de archivos de usuario "root"? En la línea del kernel, el argumento de la línea de comando root= identifica el dispositivo que contiene el sistema de archivos de usuario root.
5.
¿Cuál es la diferencia en relación con la directiva en las entradas de arranque grub.conf que se inicia con "root"? ¿Adónde apunta la línea "root" ? La línea root apunta a la partición que contiene las referencias de los archivos indicadas por el kernel y las directivas initrd. Usa una sintaxis no habitual donde (hd0,1) es la segunda partición de la primera unidad de disco duro detectada por BIOS.
6.
¿Cómo podemos restringir el acceso a las opciones interactivas del GRUB? Podemos agregar una directiva de contraseña a las opciones de configuración generales en la parte superior del archivo grub.conf. Lleva una contraseña de texto no encriptado o el "hash" de la contraseña generada con grub-md5-crypt si se incluye la opción --md5 en la directiva de contraseña.
Práctica Cuestionario
Términos del proceso de arranque Indique los nombres de los pasos para el proceso de arranque en cada definición 1.
358
BIOS: Firmware que se ejecuta al encender el equipo, habilita las características del hardware integrado y determina que el dispositivo arranque.
RH135-6-es-2-20110131
Prueba de criterios
2.
GRUB: Programa cargado del dispositivo de arranque que determina que el ejecutable del sistema operativo principal se cargue.
3.
Kernel: Ejecutable del sistema operativo principal responsable de coordinar el acceso del software a los recursos de hardware.
4.
init: Primer proceso de Linux iniciado; en última instancia inicia todos los otros procesos.
Práctica Ejercicio para ordenar
Archivos del proceso de arranque Para cada uno de los nombres de archivo o directorio indicados a continuación, escriba el número de la definición correspondiente indicado en la lista debajo. 5 2 6 9 1 4 7 3 8
/boot/grub/grub.conf /etc/inittab /etc/init/ /etc/init/rcS.conf /etc/rc.d/rc.sysinit /etc/init/rc.conf /etc/rc.d/rc5.d/ /etc/init/start-ttys.conf /etc/init/prefdm.conf
1.
Script para inicializar el sistema (incluye montaje de sistemas de archivos locales)
2.
Archivo que contiene el nivel de ejecución predeterminado
3.
Inicia las consolas virtuales basadas en texto 5 o 6
4. Tarea de init responsable de iniciar los servicios basados en System V. 5.
Contiene las instrucciones de configuración del gestor de arranque.
6. Directorio que contiene tareas de init. 7.
Contiene enlaces a los scripts de los servicios de System V para que se inicien o detengan al entrar al nivel de ejecución 5.
8. Inicia instrucciones gráficas al inicio de sesión. 9.
Tarea de init para ejecutar el script de inicialización del sistema y trabajo de inicio para iniciar los servicios de System V.
Práctica Cuestionario
Solución de problemas del proceso de arranque 1.
Si tiene problemas de daños en el sistema de archivos, la máquina arrancará en modo de mantenimiento.
RH135-6-es-2-20110131
359
Apéndice A. Soluciones
2.
En el modo de mantenimiento, ejecute fsck para solucionar los problemas de daños en el sistema de archivos.
3.
En modo de mantenimiento, ejecute mount -o remount,rw / para marcar la partición / como de escritura.
Prueba
Prueba de criterios Ejercicio
Uso y protección del modo monousuario En este ejercicio, primero recuperará la contraseña del usuario root de su servidor virtual y luego implementará el Gran Gestor de Arranque Unificado (GRUB) para proteger la contraseña, a fin de que el sistema sea más seguro. 1.
Ejecute el script para encriptar su contraseña de usuario root y vuelva a arrancar. Ejecute lab-setup-bootbreak-4 desde serverX [root@serverX ~]# lab-setup-bootbreak-4
2.
Luego de verificar que ya no puede iniciar sesión como usuario root, vuelva a arrancar el sistema para restablecer la contraseña redhat nuevamente usando el modo monousuario.
nota En el lanzamiento de Red Hat Enterprise Linux 6, se produjo un error de SELinux que bloqueó el comando passwd en modo de usuario único (n.º 644820). Si tiene el paquete original selinux-policy instalado, debe ejecutar el comando setenforce 0 en el nivel de ejecución 1 para que el comando passwd funcione. Después de cambiar la contraseña, debe ejecutar setenforce 1 nuevamente para volver SELinux a modo obligatorio.
1.
Reinicie el sistema
2.
En la pantalla "Booting Red Hat Enterprise Linux...", presione cualquier tecla para mostrar el menú GRUB.
3.
Presione a para anexar a la lista de argumentos del kernel
4. Agregue s a la lista y presione Enter para arrancar en un único modo
360
RH135-6-es-2-20110131
Prueba de criterios
5.
En el aviso del intérprete de comandos, deshabilite SELinux, restablezca la contraseña de root, continúe el proceso de arranque en el nivel de ejecución 5. [root@localhost /]# setenforce 0 [root@localhost /]# passwd New Password: redhat BAD PASSWORD: it is based on a dictionary word BAD PASSWORD: it is too simple Retype new password: redhat passwd: all authentication tokens updated successfully [root@localhost /]# setenforce 1 [root@localhost /]# init 5
3.
Asegure GRUB al agregar una línea password encriptada a la sección global de grub.conf ¿Qué comando usó para generar la contraseña encriptada? grub-md5-crypt ¿Qué línea agregó a grub.conf? password --md5 Tenga cuidado de colocar la línea password arriba de la primera línea title para que se aplique globalmente.
4.
Vuelva a arrancar el sistema e intente pasar al modo monousuario.
Preguntas de revisión: 1.
¿En qué momento se le solicitó que ingrese la contraseña de GRUB? Antes de que podamos editar/anexar algún argumento del kernel desde el menú GRUB.
2.
¿Qué ocurre si escribe la contraseña incorrecta? Continúa solicitando la contraseña antes de permitir editar o agregar los cambios.
3.
¿Puede arrancar el sistema sin la contraseña de GRUB? Sí, la contraseña sólo se usa para prevenir que se implementen cambios en una aplicación Stanza, siempre que introduzcamos la contraseña en el área superior de grub.conf.
RH135-6-es-2-20110131
361
362