manual 2013-i 03 sistemas operativos abiertos (1383)

216
Sistemas Operativos Abiertos

Upload: avn-clark-lock

Post on 22-Oct-2015

297 views

Category:

Documents


17 download

TRANSCRIPT

Page 1: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

Sistemas

Operativos Abiertos

Page 2: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

2

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

La Disciplina tarde o

temprano vencerá a la

inteligencia y si no hay

disciplina es fácil que la

pobreza te alcance.

Page 3: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 3

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Índice

Presentación 7

Red de contenidos 8 Unidad de Aprendizaje 1 INTRODUCCIÓN AL SOFTWARE LIBRE

1.1 TEMA 1 : Introducción al Sistema Operativo Linux 9 1.1.1. GNU/Linux 9 1.1.2. Sistema Operativo 10 1.1.3. Distribución 11 1.1.4. Software Libre 12 1.1.5. Claves de Éxito del Software Libre 13 1.1.6. Escritorio gráfico GNU/Linux 13 1.1.7. Requerimientos del Sistema 19 1.1.8. El estándar de jerarquía de archivos (FHS) 19 1.1.9. Particiones recomendadas para instalar CentOs 19

Unidad de Aprendizaje 2 COMANDOS BÁSICOS Y CONFIGURACIÓN DE RED

2.1.Información del Sistema 27 2.1.1. Arch 27 2.1.2. Uname (parámetros) 27 2.1.3 /proc/cpuinfo 27 2.1.4 /proc/meminfo 28 2.1.5 /proc/swaps 29 2.1.6 /proc/mounts 30 2.1.7 date 30 2.1.8 w 31 2.1.9 dfh 31 2.1.10 ps xa 31 2.1.11 mk dir 32 2.1.12 touch 32 2.1.13 cd 33 2.1.14 cp 33 2.1.15 mv 34 2.1.16 rm 34 2.1.17 ls 34 2.1.18 find 35 2.1.19 update db 36 2.1.20 mount 36 2.2. Comprensión de Archivos 38 2.2.1 Tar 38 2.2.2 Zip 39 2.2.3 Configuración de interfaces de red 39 2.2.4 Configuración del archivo /etc/hosts 40 2.2.5 Configuración del archivo /etc/resolv.conf 40 2.2.6 Configuración del archivo /etc/resolv.conf 40 2.2.7 Configuración de la interfaz de red 41

Page 4: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

4

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Unidad de Aprendizaje 3 ADMINISTRACIÓN DE USUARIOS Y GRUPOS

3.1. Introducción 45 3.1.1. Herramientas de administración de usuarios y grupos 45 3.1.2. Usuarios después de una instalación comu n 47 3.1.3 Grupos después de una instalación común 48 3.1.4 Grupos de usuario privado 49 3.1.5 Contraseñas Shadow 49 3.1.6 Ejemplos 50 Unidad de Aprendizaje 4 PROCESO DE ARRANQUE EN LINUX

4.1. Proceso de Arranque, inicio y cierre del Sistema 59 4.1.1. Proceso de arranque 59 4.2. Vista detallada del proceso de arranque 60 4.2.1. La BIOS 60 4.2.2 El gestor de arranque 60 4.2.3 El Kernel 61 4.2.4 Programa /sbin/init 62 4.2.5 Ejecutar programas adicionales en el momento de arranque 63 4.2.6 Niveles de ejecución de SysV Init 63 4.2.7 Niveles de ejecución 63 4.2.8 Utilidades de los niveles de ejecución 64 4.2.9 Apagar 65 4.2.10 El gestor de arranque GRUB 65 Unidad de Aprendizaje 5 FILESYSTEMS EN LINUX

5.1. Particiones 75 5.1.1 Conceptos básicos 75 5.1.2 Herramientas para la administración 75 5.2 Creación de Particiones en Linux 82 5.2.1. El comando para crear particiones es fdisk 83 5.3. Otras herramientas 85 5.4. Creación de los sistemas de ficheros 85 5.4.1. Partición de intercambio 86 5.5. Montado de los sistemas de ficheros 86 5.6. Chequeo del sistema de ficheros 89 5.7 Otras utilidades 89 5.8 Permisos Linux 90 5.9 Comandos Relacionados 92 5.9.1. Cambio de permisos utilizando taquigrafía de caracteres 93 5.9.2. Cambio de permisos utilizando números 94 Unidad de Aprendizaje 6 INSTALACIÓN DE APLICACIONES EN LINUX

6.1. RPM (RedHat Package Manager) 103 6.1.1. Visión general 103 6.1.2 Información general 104 6.2. Usando RPM 104 6.3. Manejo de RPM 106 6.4. Compilar aplicaciones en Linux 108 6.5. Actualizar Sistema 111 6.6 Búsquedas 112 6.7. Consulta de información 112 6.8 Instalación de paquetes 113

Page 5: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 5

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

6.9. Desinstalación de paquetes 114 6.10 Listado de paquetes 114 6.11 Limpieza del sistema 114 Unidad de Aprendizaje 7 ANÁLISIS DE ARCHIVOS DE REGISTRO DEL SISTEMA LINUX

7.1. Archivos de registro 119 7.2. Ubicación de los archivos de registro 119 7.3. Visualización de los archivos de registro 120 7.4. Demonio Syslogd 121 7.5. Quotas de disco en Linux 123 7.6. Comprobaciones 126 Unidad de Aprendizaje 8 SERVIDOR NFS y SAMBA

8.1. Servicio NFS – Introducción 130 8.2. Funcionamiento 130 8.3 Servicios requeridos 131 8.4 Iniciar y detener NFS 132 8.5 Configuración del Servidor NFS 133 8.6. Archivos de configuración de clientes NFS 136 8.7. Servicio Samba – Introducción 137 8.8. Configuración básica de Samba 138 8.9. Alta de cuentas de usuario 138 8.10. El fichero IMHosts 139 8.11. Configuración del Servidor Samba 139 8.11.1 Parámetros principales del servidor Samba 139 8.11.2 Parámetros útiles para la seguridad 140 8.11.3 Impresoras en Samba 140 8.11.4 Compartiendo directorios a través de Samba 141 8.11.5 Configuración avanzada en Samba 142 8.11.6 Re-asignación de grupos de Windows en Samba 143 8.12. Parámetros de configuración avanzada en el fichero smb.conf 147 8.13. Iniciar el servicio y añadirlo al arranque del sistema 150 8.14. Accediendo hacia Samba 150 Unidad de Aprendizaje 9

SERVIDORES DNS

9.1. Sistema DNS 159 9.2. Instalación del Servidor DNS 160 9.3. Tipos de Servidores DNS 161 9.4. Configuración del servidor DNS 164 9.5 Consultas a los servidores DNS 171 9.6 Configuración del servidor DNS primario 173 Unidad de Aprendizaje 10

SERVIDOR DHCP

10.1. Introducción 185

10.2. Configuración de un servidor DHCP en Linux 186 10.3. DHCP – Fichero de configuración 186 10.4. Configuración de un cliente DHCP 188 10.5. Archivo de Registro 188

Page 6: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

6

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Unidad de Aprendizaje 11

SERVIDOR WEB 11.1. Introducción 193 11.2. Instalación del Servidor Http Apache 193 11.3. Configuración del Servidor Http Apache 195 11.4. Página Web predeterminada 196 11.5. Archivos de registro 197 11.6. Virtual Hosts 199 11.7. Configuración de los Hosts virtuales 199 Unidad de Aprendizaje 12

SERVIDOR DE CORREO

12.1. Introducción 205 12.2. Instalación 205 12.3. Configuración 205 12.4. Restricciones 212 12.5. Comandos 213 Exámenes Finales.

BIBLIOGRAFIA : Bibliografía digital 216

Page 7: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 7

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Presentación

El curso Sistemas Operativos Avanzados (Linux) muestra como primera parte temas de introducción al sistema operativo Linux, con el cual se va tomar una primera visión de este maravilloso sistema operativo, para luego entrara mas en detalle el tema de la administración de este. La segunda parte se enfoca en la configuración de Servidores de Internet: Servidor Samba, Servidor NFS, Servidor DNS, Servidor DHCP, Servidor Web, Servidor de Correo. La instalación y configuración de estos servidores se realizara modificando sus archivos de configuración correspondientes, de tal manera que el participante podrá realizar sus propias experiencias sin importar la Distribución Linux a usar, sin embargo la distribución utilizada para la explicación del presente curso será CentOS6, shell y entornos de escritorio KDE, Gnome y aplicaciones. La seguridad de la red TCP/IP se deja para un curso posterior.

Page 8: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

8

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Red de Contenidos

Page 9: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 9

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

INTRODUCCIÓN AL SOFTWARE

LIBRE

TEMA Aspectos Generales GNU/Linux OBJETIVOS ESPECÍFICOS

Conocer las características GNU/Linux

Conocer las claves del éxitos del software libre

Identificar los tipos de particiones LINUX

CONTENIDOS

GNU/LINUX

Sistema Operativo

Distribuciones

Software Libre

Claves del Éxito de Software Libre

Escritorios Graficos en Linux

Requerimientos del Sistema

El Estandar de jerarquia de archivos (FHS)

Particiones recomendadas para instalar CentOS

UNIDAD

1

Page 10: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

10

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 11: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 11

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

1.1. INTRODUCCION AL SISTEMA OPERATIVO LINUX 1.1.1. GNU/Linux

Linux es un sistema operativo tipo Unix que se distribuye bajo Licencia GPL. Es un sistema operativo idóneo para utilizar en redes, como es el caso de servidores, estaciones de trabajo, y también para computadores personales Su nombre proviene del Núcleo de Linux, desarrollado en 1991 por Linus Torvalds en conjunto con las aplicaciones de sistema creadas por el proyecto GNU liderado por Richard Stallman.

GNU/LINUX = KERNEL + SHELL + APLICACIONES

GNU/Linux, es equipamiento lógico libre o software libre. Esto significa que el usuario tiene la libertad de redistribuir y modificar de acuerdo a necesidades, siempre que se incluya el código fuente. Licencia GPL, la Licencia Pública General de GNU o más conocida por su acrónimo en inglés (General Public License), esta es una licencia creada por la Free Software. Está orientada principalmente a proteger la libre distribución, modificación y uso de software.. Pretende garantizar su libertad de compartir y modificar el software "libre", esto es para asegurar que el software es libre para todos sus usuarios. Algunos otros programas de software de la Free Software Foundation están cubiertos por la "LGPL” (Licencia pública general reducida), la cual puede aplicar a sus programas también.

Copyleft, el copyleft se practica al ejercer el derecho de autor que consiste en permitir la libre distribución de copias y versiones modificadas de una obra u otro trabajo, exigiendo que los mismos derechos sean preservados en las versiones modificadas.

Page 12: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

12

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

1.1.2 Sistema Operativo Un sistema operativo (SO) es aquel programa o software encargado de administrar y gestionar los recursos disponibles de un ordenador a nivel de hardware y proporciona el correcto ambiente para que el usuario pueda ejecutar programas. Su función principal es la de darnos las herramientas necesarias para poder controlar nuestra computadora y poder hacer uso de ella. No son de uso exclusivo de las computadoras sino que también se utilizan para poder controlar e interaccionar con los teléfonos celulares, tablets, routers, reproductores de DVD, consolas de videojuegos, smart card, cajeros ATM, etc.

.

S.O. = intermediario entre los recursos HW, el usuario y las aplicaciones. Funciones Principales: Administración del procesador: el sistema operativo proporciona los recursos

necesarios del procesador entre las aplicaciones ejecutadas para que estas se ejecuten correctamente mediante un algoritmo de programación.

Gestión de la memoria: al igual que en el anterior punto, el sistema operativo se encarga de gestionar la memoria ram disponible en nuestra computadora para que las aplicaciones puedan ser ejecutadas.

Gestión de operaciones de entradas y salidas (inputs/outputs): el sistema operativo permite administrar los periféricos a través de los drivers.

Gestión de Aplicaciones: el sistema operativo como ya lo mencionamos asigna los recursos necesarios para que estas se ejecuten correctamente, ademas permite matar los procesos necesarios si en el algún momento una aplicación falla.

Administración de autorizaciones: el sistema operativo se encarga de gestionar y administrar las autorizaciones garantizando que solo los usuarios y las aplicaciones que tienen la autorización puedan ejecutarlas.

Gestión de archivos: el sistema operativo gestiona la lectura y escritura en el sistema de archivos, y las autorizaciones de acceso a archivos de aplicaciones y usuarios.

Administración de utilerias y soporte: el sistema operativo proporciona información con algunos indicadores que pueden ser utilizados para diagnosticar el funcionamiento correcto del equipo.

Page 13: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 13

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

1.1.3 Distribuciones

Una distribución GNU/Linux (coloquialmente llamada distro) es una distribución de software basada en el núcleo Linux que incluye determinados paquetes de software para satisfacer las necesidades de un grupo específico de usuarios, dando así origen a ediciones domésticas, empresariales y para servidores. Por lo general están compuestas, total o mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios. Distros más importantes del mundo GNU/Linux

a) Componentes El conjunto típico de una distribución Linux contiene un núcleo, herramientas y bibliotecas, software adicional, documentación, un sistema de ventanas, un administrador de ventanas y un entorno de escritorio, este suele ser GNOME o KDE. Gran parte del software incluido es de fuente abierta o software libre y distribuido por sus desarrolladores tanto en binario compilado como en forma de código fuente, permitiendo a sus usuarios modificar o compilar el código fuente original si lo desean. Muchas distribuciones incorporan software privativo, no disponible en forma de código fuente. b) Distribuciones independientes como Gentoo Linux, T2 y Linux

From Scratch proveen el código fuente de todo el software y solo incluyen los binarios del núcleo, herramientas de compilación y de un instalador; el instalador compila todo el software para el CPU específico de la PC del usuario.

c) Gestión de paquetes Las distribuciones están divididas en «paquetes». Cada paquete contiene una aplicación específica o un servicio. Ejemplos de paquetes son una biblioteca para manejar el formato de imagen PNG, una colección de tipografías o un navegador web. El paquete es generalmente distribuido en su versión compilada y la instalación y desinstalación de los paquetes es controlada por un sistema de gestión de paquetes en lugar de un simple gestor de archivos. Cada paquete elaborado para ese sistema de paquetes contiene meta-información tal como fecha de creación, descripción del paquete y sus dependencias. El sistema de paquetes analiza esta información para permitir la búsqueda de paquetes, actualizar las librerías y aplicaciones instaladas, revisar que todas las dependencias se cumplan y obtenerlas si no se cuenta con ellas de manera automática. d) Sistemas de paquetes más usados son: RPM, creado por Red Hat y usado por un gran número de distribuciones de Linux, es el formato de paquetes del Linux Standard Base. Originalmente introducido por Red Hat, pero ahora se usa en muchas distribuciones, como por ejemplo Mandriva.

Page 14: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

14

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Deb, paquetes Debian, originalmente introducidos por Debian, pero también utilizados por otros como Knoppix y Ubuntu. .tgz, usado por Slackware, empaqueta el software usando tar y gzip. Pero, además, hay algunas herramientas de más alto nivel para tratar con este formato: slapt-get, slackpkg y swaret. Ebuilds, archivo que contiene información acerca de cómo obtener, compilar e instalar un paquete en el sistema Portage de Gentoo Linux con el comando emerge. Generalmente, estas instalaciones se basan en la compilación de fuentes, aunque algunos paquetes binarios se pueden instalar de esta manera. Pacman, para Arch Linux, usa binarios precompilados distribuidos en un fichero .pkg.tar.gz ó .pkg.tar.xz. PET, utilizado por Puppy Linux, sus derivados y Quirky, su proyecto hermano.

1.1.4 Software Libre

El software libre ha dejado de ser, exclusivamente, un proceso de desarrollo de software a ser una filosofía. Para comprender este paso debemos relacionar el software libre con el concepto de LIBERTAD y COOPERACIÓN. Las libertades se traducen en una serie de derechos que todas las personas tenemos sobre el software libre. Cuatro libertades de los usuarios del software libre: 1. La libertad de usar el programa, con cualquier propósito 2. Estudiar el funcionamiento de la aplicación y adaptarlo a las necesidades 3. Distribuir copias, con lo que puede ayudar a otros. 4. Mejorar el programa y hacer públicas las mejoras, de modo que toda la comunidad se beneficie. Otro de los requisitos fundamentales para considerar a una aplicación como Software Libre es el acceso al código fuente de la aplicación La palabra que dificulta comprender qué es el software libre, es el precio. Un software privado puede ser gratis y un software libre puede tener un coste; aunque lo común es que el software privado tenga un coste (por ejemplo el Microsoft Office) y un software libre no lo tenga (por ejemplo el Libre Office). Diferencia entre Software Libre y Open Source Software Libre se centra en el concepto de las libertades otorgadas a quienes reciben el programa. Open Source se centra en la mayor eficiencia del proceso productivo y en beneficio al desarrollador.

Page 15: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 15

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

1.1.5 Claves de éxito del Software Libre Hay que analizarlo desde diversos puntos de vista.

a) Desde el punto de vista de lo programadores.

Programar en software libre exige unos conocimientos informáticos similares a la programación de cualquier sistema propietario. La diferencia está en que un software libre que tenga aceptación, está continuamente mejorándose por los propios usuarios; si el software tiene mucho éxito, como el caso del moodle en entornos de formación, entonces muchas personas solicitarán que los cambios realizados en el software sean distribuidos de forma oficial para todo el mundo. Esta situación hace que los creadores del software tengan que elegir entre cientos de mejoras. Por otra parte, al software libre se puede adaptar a cada organización; por tanto es más fácil a un programador modificar un software libre que crear una nueva aplicación para su organización.

b) Desde el punto de vista institucional y social.

El software trabaja con información y la información es estratégica para las organizaciones. Si el software es propietario dependes de las condiciones que imponga esa empresa para utilizar el software; si esas condiciones no te gustan tendrás que utilizar otro software, pero antes tendrás que valorar el coste de cambiar toda la información al nuevo software. Si la empresa que propietaria del software es un monopolio, la situación es de total dependencia de los propietarios del software; es decir, la información de tu organización estaría en manos de la empresa del software. Precisamente el software libre evita esa dependencia del software, ya que el software es tuyo, puedes cambiarlo, modificarlo, etc. Aunque el software seguirá siendo libre la información continua estando en manos de la organización. Son muchas las organizaciones (Administraciones locales, regionales y naciones, instituciones públicas, empresas, universidades,…) que han decidido que solo utilizaran software libre.

c) Desde el punto de vista de las empresas de servicios. Una empresa de servicio

ofrece un servicio informático, pero no tiene por que ser la propietaria del software. Para las empresas de servicio la oportunidad del softw libre es que no tienen costes de licencias. Este tipo de empresas no cobran el software pero si cobran el servicio (instalación, mantenimiento, atención a los usuarios, formación, …). Estas empresas deben conocer las distintas aplicaciones de software libre que existen en el mundo que sirvan para dar el servicio que ofrecen.

d) Desde el punto de vista del usuario individual. Un estudiante o una persona que

desee tener en su ordenador una serie de programas (ofimática, reproductores, organizadores y cualquier otro tipo de programa) tendría que gastarse una cantidad de dinero considerable (a veces muy alta). Cuando no se tiene ese dinero, o no se desea gastarlo, se suele recurrir a las copias piratas. Está copias son fácilmente accesibles, pero lo cierto es que se está cometiendo un delito. El software libre es igual o mejor que otro software propietario, así pues, podemos tener de forma legal todo tipo de aplicaciones. Además usando software libre favorecemos que cada vez más personas contribuyan a mejorar el software existente

1.1.6 Escritorio Gráfico GNU/Linux El escritorio es el entorno visual que se encarga de interactuar entre el kernel de Linux y los programas, siendo vital para el usuario. Cuando te instales el sistema operativo, este te vendrá con un escritorio preinstalado, pero posteriormente puedes instalar tú otro distinto y elegir qué escritorio quieres usar cada vez en el menú de inicio de sesión. Según el

Page 16: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

16

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

ordenador que tengas y el uso que le quieras dar te convendrá usar un escritorio determinado.

KDE (KDesktop Environment) se trata de un entorno de escritorio creado en 1996 por Mathias Ettrich para diferentes versiones del sistema UNIX. El objetivo al crear este entorno fue el tener algo que permitiese a los usuarios no solo mirar líneas de ordenes e interactuar de forma gráfica con todos los componentes del sistema. De la misma manera, se pretendía que esta, fuera una herramienta fácil de usar. Se basa en el la biblioteca gráfica Qt y actualmente está traducido en más de 108 idiomas. Este entorno se basa en la personalización, y de la misma manera que GNOME prácticamente cualquier aspecto puede ser configurado por el usuario de la manera que él quiera. Actualmente la última versión estable es la 4.7 y tiene como elemento central en su diseño a “Plasma“. Esta herramienta se crea con el objetivo de combinar el panel Kicker, KDesktop y el gestor de widgets, en un único elemento. Este es un escritorio diseñado además para ser bonito y eso conlleva que tenga mayor consumo de recursos que GNOME. También es cierto que el mayor consumo de recursos no es exagerado, aunque si sensiblemente superior siendo más pronunciado en la carga del escritorio. Donde más evidente se nota esta diferencia es en equipos con los recursos más ajustados. KDE es posiblemente el mejor escritorio para Linux, o al menos el más completo. En contraposición a Gnome, KDE está enfocado a que lo puedas personalizar lo máximo posible, con infinidad de opciones para su configuración. La ultima versión del escritorio, KDE 4, es especialmente llamativa ya que incluye un aspecto visual sorprendente, integra sus propios efectos visuales (o sea, que no hay necesidad de usar Compiz), incluye un

Page 17: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 17

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

completo sistema de widgets para el escritorio, un navegador de archivos que permite realizar casi cualquier cosa y un panel de control completísimo.

Ofrece infinidad de posibilidades y es completamente personalizable a tu estilo. Algunas distribuciones que incluyen KDE son: Kubuntu, Mepis, Debian, Fedora, Mandriva, openSuse, Slackware, Xandros. En otras distribuciones como Ubuntu, puedes instalar KDE desde el Software Center marcando "Kubuntu Plasma Desktop system", o también se puede hacer lo mismo abriendo un gestor de paquetes (por ejemplo, Synaptic) e instalando el paquete "KDE Plasma Desktop". Después de instalado, para usarlo sólo tienes que iniciar sesión marcando KDE como escritorio predeterminado al elegir la cuenta de usuario. Una curiosidad: KDE significa K Desktop Environment, y la K no significa nada, simplemente escogieron esa letra porque era la anterior a la L de Linux

KDE

GNOME Este entorno de escritorio es uno de los más conocidos que no solo está presente en Linux. También se puede encontrar en otros sistemas Unix como BSD y Solaris. Gnome (GNU Network Object Model Environment) tuvo su origen en los mejicanos Miguel de Icaza y Federico Mena en 1999, estando traducido actualmente en más de 166 idiomas. El objetivo de este entorno es crear un sistema de escritorio para el usuario final que sea completo, libre y fácil de usar. Usa las bibliotecas gráficas GTK y está bajo licencia GPL. Una característica bastante útil aunque común a prácticamente cualquier entorno, es el poder usar varios espacios de trabajo, cada uno con un escritorio independiente de los demás. El hecho de pasar aplicaciones entre escritorios es tan simple como arrastrar con el

ratón la ventana de dicha aplicación a otro escritorio.

Page 18: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

18

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Gnome clásico viene instalado o permite ser instalado fácilmente en muchas distribuciones Linux, como por ejemplo Ubuntu, Gentoo o gOS. Otras distribuciones optan por dejarte elegir qué escritorio quieres usar (generalmente KDE o Gnome), por ejemplo Debian, Mandriva, openSuse, Foresight o Fedora. Gnome se actualizó a su versión 3.0 teniendo numerosos cambios, aunque el cambio que ha destacado sobre el resto, es la inclusión de GNOME Shell, en detrimento del GNOME Panel. Esto ha creado bastante controversia ya que los usuarios no pueden utilizar Compiz mientras GNOME Shell se esté ejecutando. Nada más instalarlo tendremos arriba a la izquierda el menú principal que nos dará acceso a las Aplicaciones instaladas, a Lugares comunes (carpeta de usuario, red, papelera, discos duros, documentos recientes, buscar archivos...) y por último aparece el menú Sistema, con las opciones de configuración, personalización y apagado del equipo. De forma predeterminada aparecen 2 paneles (o barras) en el escritorio, uno abajo con la lista de ventanas abiertas y los escritorios virtuales y otro panel arriba con los menús, accesos directos, reloj e iconos del sistema.

UNITY

Unity es un entorno de escritorio desarrollado en Junio de 2010 por Canonical para Ubuntu. Su primer lanzamiento se pudo ver en la versión 10.10 de Ubuntu Netbook Remix, con el objetivo de optimizar el espacio de las pantallas de los netbooks. Después de esto, en octubre de ese mismo año, se anunció que Unity se utilizaría en la versión de escritorio de Ubuntu. Los elementos que tiene Unity son un lanzador a la izquierda que sirve como lugar donde se encuentran los accesos directos de las aplicaciones, un contenido central llamado “Lugares” que muestra todos los archivos y aplicaciones de usuario, además de ofrecer un buscador de categorías y aplicaciones. Y ya lo hemos visto con el lanzamiento de Ubuntu 11.04 como el escritorio por defecto era este, creando bastante descontento entre buena parte de los usuarios de Ubuntu. No en vano circulan numerosos tutoriales en la red que ayudan a quitar este entorno y volver al antiguo GNOME.

Page 19: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 19

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Unity

XFCE Este es un entorno de escritorio muy ligero para sistemas Unix. Según palabras de su creador Olivier Fourdan, XFCE (XForms Common Environment) está “diseñado para la productividad, las apliacciones se cargan y se ejecutan rápidamente, mientras se conserva recursos del sistema“. Creado en 1996, está basado en la biblioteca GTK y utiliza el gestor de ventanas Xfwm. XFCE es un entorno muy ligero, y resulta ideal para equipos como menos recursos ya que el no ser un entorno visualmente tan potente como pueden ser los anteriores, hace que no consuma tantos recursos. También hay que apuntar que el no ser tan potente visualmente no le impide que pueda ser muy personalizable, pudiendo cambiar temas de ventana, fondos de escritorio, protectores de pantalla, tipos de letras o cualquier aspecto visual del mismo.

Page 20: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

20

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

XFCE LXDE De la misma manera que los anteriores, este entorno está disponible para varios sistemas Unix. LXDE (Lightweight X11 Desktop Environment) pretende ser como su propio nombre indica un entorno de escritorio X11 ligero. Utiliza Openbox como gestor de ventanas predeterminado. Los componentes de LXDE son independientes, a diferencia de otros entornos de escritorio, lo que hace que tengan muy pocas dependencias. Y como entorno ligero que es, está diseñado especialmente para equipos con escasos recursos como netbooks o ordenadores antiguos.

LXDE

¿Cuál es el mejor Escritorio GNU/Linux?

Dentro de lo subjetiva que pueda ser la respuesta, hay que tener en cuenta algo fundamental como son los recursos del equipo. Por lo que si tenemos un equipo antiguo o queremos instalar alguna distribución de Linux en una máquina virtual en la cual no queremos cederle demasiados recursos, lo ideal sería buscar entornos ligeros como puede ser el caso de XFCE o LXDE. En caso contrario que tengamos un equipo sin tantas límitaciones, y queramos permitirnos algún lujo visual podemos pasar a otra categoría entornos como GNOME o KDE. En el primer caso de XFCE o LXDE, se puede decir que ambos tienen una buena integración con GTK diferenciándose en el gestor de ventanas. Hay gente que dice que Openbox (gestor de ventanas de LXDE), es algo más ligero que Xfwm (el de XFCE), pero yo no he notado ninguna diferencia. Visualmente LXDE es más bonito, pero como opinión personal, cada uno tiene la suya y habrá gente que le guste más el aspecto de XFCE. En el segundo caso el elegir uno u otro es influido casi diría que por sensaciones personales. Me explico. Cuando empecé en Linux hará unos 7 años, fue porque un amigo me dejó una versión de Mandrake (que posteriormente pasó a llamarse Mandriva). Ahí tuve mi primer contacto con KDE y el hecho de acostumbrarme a él, hizo que después en el resto de distribuciones que probé (Debian, Suse, Fedora y Kubuntu) estuviera presente KDE. Me parecía mucho más chulo que el soseras de

Page 21: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 21

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

1.1.7 Requerimientos del sistema Se debe contar con la suficiente cantidad de memoria y un microprocesador en buen estado. Con casi cualquier distribucion comercial de Linux, el ambiente grafico necesitara al menos 640 MB RAM y 1 GB de espacio libre en disco duro para la instalacion minima. Para contar con una cantidad minima de aplicaciones, se requieren al menos 2 GB adicionales de espacio libre en disco duro, repartido en al menos 3 particiones. Se recomienda como minimo unmicroprocesador i686 a 1 GHz. Sin ambiente grafico, como es el caso de un servi dor o bien solamente aplicaciones para modo de texto, se requieren al menos 384 MB RAM y un microprocesador i686 a 500 MHz seran suficientes.

El servidor de video puede funcionar con solo 128 MB RAM; pero su desempeno será extremadamente lento. Algunas aplicaciones para modo grafico pueden necesitar escalar 256MB, 512 MB o 1 GB de RAM adicional.

El minimo recomendado para utilizar GNOME 2.x es de 384MB RAM; se recomiendan 512 MB. El óptimo es de 1 GB RAM. Si desea instalar Linux en una computadora personal con las suficientes aplicaciones para ser totalmente funcional y productivo y contar con el espacio necesario para instalar herramientas de oficina (OpenOffice.org), se recomienda contar con al menos 4 GB de espacio libre en disco, al menos 512 MB RAM y un microprocesador i686, a cuando menos 1 GHz. El instalador en modo texto de CentOS 6 y Red Hat Enterprise Linux 6 requiere al menos 384 MB RAM., mientras que el instalador en modo grafico de estos requeire al menos 640 MB RAM.

1.1.8 El Estandar de Jerarquia de Archivos (FHS) Define los principales directorios y sus contenidos en GNU/Linux y otros sistemas operativos similares a Unix. En agosto de 1993 inicio el proceso para desarrollar un estandar de sistema de archivos jerarquico, como un esfuerzo para reorganizar la estructuras de archivos y directorios de GNU/Linux. El 14 de Febrero de 1994 se publico el FSSTND (Filesystem Standard), un estándar de jerarquia de archivos especifico para GNU/Linux. Revisiones de este se publicaron el 9 de Octubre de 1994 y el 28 de Marzo de 1995. A principios de 1996, con la ayuda de miembros de la comunidad de desarrolladores de BSD, se fijó como objetivo el desarrollar una version de FSSTND más detallada y dirigida no solo hacia Linux sino tambien hacia otros sistemas operativos similares a Unix. Como uno de los resultados el estandar cambio de nombre a FHS o Filesystem Hierarchy Standard. El FHS es mantenido por Free Standards Group, una organizacion sin fines de lucro constituida por companias que manufacturan sustento fisico (Hardware) y equipamiento logico (Software) como Hewlett Packard, Dell, IBM y Red Hat. La mayoria de las distribuciones de Linux, inclusive las que forman parte de Free Software Standards, sin aplicar de forma estricta el estandar.

Page 22: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

22

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Estructura de Directorios Todos los archivos y directorios aparecen debajo del directorio raiz ≪/≫, aun si estan almacenados en dispositivos fisicamente diferentes

Page 23: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 23

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Page 24: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

24

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

1.1.9 Particiones recomendadas para instalar CentOS Para uso general, se recomienda utilizar un diseno de tres particiones:

Los siguientes directorios jamas deberan estar fuera de la particion a “/”

/etc /bin /deb /lib y /lib64 /media /mnt /proc /root /sbin /sys

Page 25: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 25

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Autoevaluación

¿Qué representa la simbología GNU/Linux?

¿Establece cinco diferencias entre Software Libre y Open Source?

Que otros tipos de licencias existen en software libre y open source

Debate. ¿Crees que es necesario poner restricciones al software libre?, ¿Por qué?

Mencionar Sistemas Operativos para aplicaciones móviles e industriales

Cuales son las otras Distribuciones posicionadas GNU/Linux

Claves del Éxito de Software Libre

Cual es el mejor Escritorios Graficos en Linux para equipos de recursos limitados y equipos de óptimos rendimiento

Son las Particiones recomendadas para instalar CentOS

Mencionar los siguientes Sistemas Operativos Representativos y donde tienen mejor aplicación como usuario final.

Page 26: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

26

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 27: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 27

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

COMANDOS BÁSICOS Y

CONFIGURACIÓN DE RED

TEMA Conocer los comandos básicos para el manejo de Linux OBJETIVOS ESPECÍFICOS

Conocer los comandos básicos del entorno linux

Aprender a modificar los parámetros de red en Linux

CONTENIDOS

Comandos para información del sistema

Comandos para manejo de archivos

Comandos para configuración de red

UNIDAD

2

Page 28: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

28

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 29: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 29

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

2.1. INFORMACIÓN DEL SISTEMA

A continuacion daremos una serie de comandos utiles para conocer aspectos generales del sistema

2.1.1 Arch

Este comando sirve para mostrarnos la arquitectura del procesador de nuestro sistema:

2.1.2 uname [parametros]

La función de este comando es similar al anterior, la única diferencia es que este nos arroja más información del sistema de acuerdo al número de parámetros que le pasemos.Los parámetros que podemos usar son: -a: Imprime el nombre kernel, del equipo, version del kernel, fecha en que fue apagado el sistema por ultima vez, arquitectura del sistema - s: Imprime el nombre del kernel - n: Imprime el nombre del equipo - r: Imprimeversion del kernel - i o –p: Imprime la arquitectura del equipo - o:.Imprime el nombre del sistema operativo

Ejemplo:

2.1.3 /proc/cpuinfo Nos muestra la informacion referente al procesador del sistema Ejemplo:

Page 30: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

30

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

2.1.4 /proc/meminfo Verifica el uso de la memoria Ejemplo:

2.1.5 /proc/swaps Nos muestra el uso del espacio en memoria SWAP Ejemplo:

Page 31: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 31

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

2.1.6 /proc/mounts Nos muestra los sistemas de ficheros que se encuentran montados Ejemplo:

2.1.7 date Nos muestra la fecha que tiene registrado el sistema Ejemplo:

En caso de querer modificar la fecha solo se debe de seguir la siguiente sintaxis: date [MesDiaHoraMinutoAño.Segundos] Ejemplo:

Page 32: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

32

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

2.1.8 w Nos indica los usuarios que se encuentran en el sistema asi como lo que hacen en el

Ejemplo:

2.1.9 df h Nos reporta el uso de espacio en los discos duros Ejemplo

2.1.10 ps xa Este comando lista los procesos que se estan ejecutando en el sistema

Page 33: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 33

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

2.1.11 mkdir

Este comando sirve para crear una carpeta Ejemplo:

Tambien puede usarse en conjunto con el parametro p para crear un arbol de carpetas Ejemplo

2.1.12 touch Sirve para generar archivos sin contenido Ejemplo

Page 34: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

34

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

2.1.13 cd

Comando que nos permite movernos entre directorios, su sintaxis es: cd [carpeta donde quiero moverme] Ejemplo:

para regresar un nivel entre directorios es:

2.1.14 cp Comando que sirve para copiar archivos o carpetas, su sintaxis es cp [parametros] [archivo/Directorio] [rutaDestino] Los parametros son: -r: Copiadirectorios recursivamente -v: Muestra el estado de la copia -f: Forza la copia sin pedirnos confirmación Ejemplo 1: Copiando un archivo a una carpeta

Ejemplo 2: Copiando una carpeta a otra carpeta

Page 35: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 35

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

2.1.15 mv Comando que sirve para mover archivos o carpetas, su sintaxis es mv [parametros][archivo/Directorio] [rutaDestino] Los parametros son: -v: Muestra el estado del proceso -f: Forza el movimiento sin pedirnos confirmación Ejemplo 1: Moviendo un archivo a una carpeta

Ejemplo 2: Moviendo un archivo a una carpeta

2.1.16 rm Comando que sirve para eliminar archivos o carpetas, su sintaxis es rm [parametros] [archivo/Directorio] Los parametros son: -r: Borra directorios recursivamente -v: Muestra el estado de la borrado -f: Forza el borrado sin pedirnos confirmación Ejemplo 1:

Ejemplo2:

2.1.17 ls Lista los archivos que contiene una carpeta, su sintaxis es ls [parametros] Los parametros son: -l: Muestra los detalles de archivos y carpetas

Page 36: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

36

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

-a: Muestra los archivos o carpetas ocultas Ejemplo:

2.1.18 find Busca archivos en una ruta especifica, su sintaxis es find [ruta] [expresion] Ejemplo1. Buscar archivos y carpetas con el nombre “archivo.txt” en todo el directorio Raiz

Page 37: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 37

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Ejemplo 2. Buscar archivos y carpetas que le pertenezcan al usuario “rdelvillar” en todo el directorio raiz

Ejemplo 3. Buscar archivos con extension .bin dentro del directorio '/home/rdelvillar'

Ejemplo 4. Buscar archivos binarios que no han sido usados en los ultimos 100 dias

Ejemplo5. Buscar archivos binarios creados o modificados en los ultimos diez dias

2.1.19 updatedb

Este comando sirve para actualizar la base de datos de nuestro sistema

2.1.20 mount

El comando mount nos sirve para montar desde particiones de disco, hasta dispositivos externos como cd's, dvd's, floopy drives, imagenes ISO, o dispositivos de almacenamiento masivo de datos. La manera de usar este comando es la siguiente:

Page 38: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

38

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Ejemplo1. Montando un DVD

Ejemplo 2. Montando en CD

Ejemplo 3. Montando un floppy drive

Ejemplo 4.Montando una imagen ISO

Ejemplo 5.Montando un sistema de ficheros de Windows

Ejemplo 6.Montando un sistema de ficheros de Linux

Page 39: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 39

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

2.2. COMPRESION DE ARCHIVOS 2.2.1 Tar El comando tar es utilizado normalmente para empaquetar o desempaquetar archivos. La sintaxis para el buen uso de este comando es: [root@localhost ~]# tar [parametros] [fichero1] [fichero2]

Los parametros son: -c: Crea un fichero tar -v: Muestra el estado del borrado -x: Extrae los archivos (descomprime los ficheros que se encuentran dentro del archivo tar) -z: Comprime el archivo tar con gzip -j: Comprime el archivo tar bzip -f: Al usar el parametro -c junto con este parametro se especifica que se utilizara el nombre del archivo especificado para la creacion del archivo tar Ejemplo 1.Empaquetar un archivo con TAR

Ejemplo 2.Desempaquetar ficheros TAR

Ejemplo 3.Comprimir una carpeta con TAR.GZ

Ejemplo4.Descomprimir una carpeta TAR.GZ

Ejemplo 5.Comprimir una carpeta con TAR.BZ

Page 40: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

40

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Ejemplo 6.Descomprimir una carpeta TAR.BZ

2.2.2 zip El comando zip es utilizado normalmente para comprimir paquetes. La sintaxis para el buen uso de este comando es: [root@localhost ~]# zip [parametros] Ejemplo 1. Comprimiendo un archivo con ZIP

Ejemplo 2.Descomprimiendo un archivo ZIP

2.2.3. Configuracion de interfaces de red

La configuración de la interfaz es importante en un servidor o equipo de escritorio. Los principales archivos de configuración son:

/etc/hosts

Este archivo de configuración contiene los nombres de equipos dentro de una red local y se utilizar para resolver su nombre cuando no se tiene un servidor de DNS en la red local, también este archivo define la dirección de loopback que representa al propio equipo independientemente de la dirección IP que se le haya asignado

/etc/resolv.conf Este archivo especifica las direcciones IP de los servidores DNS

/etc/sysconfig/network Este archivo de configuración es utilizado para definir las características de red deseadas

/etc/sysconfig/networkscripts/ ifcfg<interfaz>

Estos archivos de configuración son utilizados para especificar la configuración de la tarjeta de red

Page 41: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 41

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

2.2.4 Configuracion del archivo /etc/hosts Este archivo de texto asocia las direcciones IP con el nombre del equipo (hostname). Este archivo debe tener la siguiente forma:

Direccion IP nombre.del.equipo alias

Las modificaciones realizadas en este archivo de configuración son reflejadas inmediatamente. Nota: Este archivo se encuentra la dirección de loopback (127.0.0.1), esta dirección es utilizada por varias aplicaciones para su funcionamiento, se recomienda que no modifique esta linea. Ejemplo:

127.0.0.1 localhost.localdomain localhost 192.168.1.10 mail.redfactor.net mail 192.168.1.13 www.red.factor.net www

2.2.5 Configuracion del archivo /etc/resolv.conf Este archivo de configuración contiene las direcciones IP de los servidores DNS. Sus parámetros de configuración son:

nameserver Define las direcciones IP de los servidores de nombre en los cuales se deberán resolver las búsquedas. El archivos hosts solo permite hasta 3 servidores de nombre diferentes

domain Define el nombre de dominio local en el cual pertenecen los equipos en una red local

search Este parámetro define la lista de búsqueda nombres de equiposes útil cuando se busca un equipo dentro de la red local por un nombre corto

sortlist Este parámetro indica la preferencia de los nameserver definidos

2.2.6 Configuracion del archivo /etc/resolv.conf Los parámetros que utiliza este este archivo son:

NETWORKING Los valores que admites son:

yes Permite la configuración de los servicio de red.

no No permite la configuración de los servicio de red.

FORWARD_IPV4 Habilita el reenvío de paquetes. Los valores que admite son yes o no.

HOSTNAME Define el nombre del equipo, el cual debe de tener la forma del Fully Qualified Domain Name (FQDN). Por ejemplo: equipo.ejemplo.net

GATEWAY Este parametro define la dirección IP del Gateway

Page 42: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

42

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

2.2.7 Configuración de la interfaz de red El directorio de configuración de la interfaz de red se encuentra en:

/etc/sysconfig/networkscripts/

Dentro de este directorio se encuentran los archivos de configuración de los dispositivos, dependiendo del número de interfaces de red instaladas en la computadora será el número de archivos de configuración, el nombre de estos archivos depende del tipo de dispositivo

Ethernet ifcfgeth0,ifcfgeth1, ..., ifcfgethN.

WiFi ifcfgwlan0, ifcfgwlan1,..., IfcfgwlanN.

Modem ifcfgppp0, ifcfgppp1, ..., ifcfgpppN.

en donde N representa el numero de interfaz a configurar. Los parámetros que admiten los archivos de configuración de la interfaz de red Ethernet son los siguientes:

DEVICE Define el nombre del dispositivo físico

BOOTPROTO none No utiliza ningún protocolo de arranque. static Se define de forma manual los parámetros de red. dhcp Obtiene los parámetros de red por medio de un servidor de DHPC

IPADDR Define la dirección IP asignada a ese dispositivo.

NETMASK Define la máscara de red.

NETWORK Define el segmento de red

HWADDR Define el dirección MAC del dispositivo de red. Se recomienda que modificar el valor de este parámetro.

GATEWAY Define la Dirección IP del Gateway en la red

ONBOOT Establece si el dispositivo debe activarse con los servicios de red

DNS1, DNS2 Define las direcciones de los servidores DNS primario y secundario a utilizar.

DHCP_HOSTNAME Esta opción establece un nombre al equipo. Utilice esta opción si el servidor DHCP requiere que el cliente especifique el nombre de su equipo antes de recibir una dirección IP.

Ejemplo del archivo de configuración.

DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.2.10 NETMASK=255.255.255.0 NETWORK=192.168.2.0 GATEWAY=192.168.2.254 DNS1=192.168.2.1 HWADDR= 00:1E:EC:6E:CD:51

Page 43: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 43

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Autoevaluación

1. ¿Cuál es el comando que te permite conocer la hora del sistema?

(a) cd

(b) mkdir

(c) date

(d) messages

2. ¿Cuál es el comando que te permite conocer los usuarios conectados al sistema?

(a) ls

(b) cat

(c) w

(d) tar

3. ¿Cuál es el archivo donde se almacena los DNS del sistema?

(a) hosts

(b) messages

(c) resolv.conf

(d) grub.conf

Page 44: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

44

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 45: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 45

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

ADMINISTRACIÓN DE USUARIOS

Y GRUPOS

TEMA Aprender cómo administrar usuarios y grupos en un ambiente Windows

OBJETIVOS ESPECÍFICOS

Aprender a crear, editar y eliminar usuarios

Aprender a crear, editar y eliminar grupos

CONTENIDOS

Introducción

Herramientas para la creación de usuarios

Usuarios y Grupos estándares

Contraseñas

Ejemplos

UNIDAD

3

Page 46: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

46

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 47: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 47

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

3.1. INTRODUCCIÓN El control de los usuarios y grupos es un elemento clave en la administración de sistemas Linux. Los tipos de usuarios en Linux son:

Usuario Administrador Es la cuenta del administrador del Sistema en caso de Linux y Unix el usuario es el usuario root Usuarios de Servicio Cuentas que existen para ser usadas con aplicaciones especificas Usuarios Standard Cuentas ligadas a un usuario físico en particular

Los Grupos son expresiones lógicas de organización, reuniendo usuarios para un propósito común. Los usuarios dentro de un mismo grupo pueden leer, escribir o ejecutar archivos que pertenecen a ese grupo. Cada usuario y grupo tiene un número de identificación único llamado identificador de usuario (UID) y un identificador de grupo (GID) respectivamente. Un usuario que crea un archivo se convierte en el propietario y el propietario de grupo para ese archivo. Al archivo también se le asignan permisos separados de lectura, escritura y ejecución para el propietario del archivo, para el grupo y para cualquier otro usuario. Solamente el superusuario (root) puede cambiar el propietario de un archivo, y los permisos de acceso se pueden cambiar tanto por el superusuario como por el creador del archivo. Linux soporta listas de control de acceso (ACLs) para archivos y directorios lo que permite colocar permisos para usuarios específicos además del creador. Una de las tareas más importantes de cualquier administrador del sistema, es la de administrar adecuadamente usuarios y grupos, así como asignar y revocar permisos.

3.1.1 Herramientas de administración de usuarios y grupos

La gestión de usuarios y grupos ha sido tradicionalmente tediosa, pero Linux proporciona algunas herramientas y convenciones que facilitan su gestión. La forma más fácil de manejar usuarios y grupos es a través de la aplicación gráfica, Administrador de usuarios (system-config-users).

Page 48: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

48

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Las siguientes herramientas de línea de comandos también se pueden utilizar para manejar usuarios y grupos: . useradd, usermod y userdel. Métodos estándar de la industria para añadir, eliminar y modificar cuentas de usuarios. . groupadd, groupmod y groupdel. Métodos estándar de la industria para añadir, eliminar y modificar grupos de usuarios. . gpasswd. Métodos estándar de la industria para administrar el archivo /etc/group. . pwck, grpck. Herramientas para la verificación de contraseñas, grupo y archivos shadow asociados. . pwconv, pwunconv. Herramientas para la conversión de contraseñas a contraseñas shadow (oscurecimiento de contraseñas) y de vuelta a contraseñas estándar.

Page 49: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 49

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

3.1.2 Usuarios después de una instalación común En la tabla siguiente se lista los usuarios estándar configurados en el archivo /etc/passwd para una instalación. El groupid (GID) en esta tabla es el grupo primario para el usuario.

Usuario UID GID Directorio principal Shell

root 0 0 /root /bin/bash

bin 1 1 /bin /sbin/nologin

daemon 2 2 /sbin /sbin/nologin

adm 3 4 /var/adm /sbin/nologin

lp 4 7 /var/spool/lpd /sbin/nologin

sync 5 0 /sbin /bin/sync

shutdown 6 0 /sbin /sbin/shutdown

halt 7 0 /sbin /sbin/halt

mail 8 12 /var/spool/mail /sbin/nologin

news 9 13 /etc/news

uucp 10 14 /var/spool/uucp /sbin/nologin

operator 11 0 /root /sbin/nologin

games 12 100 /usr/games /sbin/nologin

gopher 13 30 /var/gopher /sbin/nologin

ftp 14 50 /var/ftp /sbin/nologin

nobody 99 99 / /sbin/nologin

rpm 37 37 /var/lib/rpm /sbin/nologin

vcsa 69 69 /dev /sbin/nologin

dbus 81 81 / /sbin/nologin

ntp 38 38 /etc/ntp /sbin/nologin

canna 39 39 /var/lib/canna /sbin/nologin

nscd 28 28 / /sbin/nologin

rpc 32 32 / /sbin/nologin

xfs 43 43 /etc/X11/fs /sbin/nologin

gdm 42 42 /var/gdm /sbin/nologin

htt 100 101 /usr/lib/im /sbin/nologin

mysql 27 27 /var/lib/mysql /bin/bash

webalizer 67 67 /var/www/usage /sbin/nologin

mailnull 47 47 /var/spool/mqueue /sbin/nologin

smmsp 51 51 /var/spool/mqueue /sbin/nologin

squid 23 23 /var/spool/squid /sbin/nologin

ldap 55 55 /var/lib/ldap /bin/false

netdump 34 34 /var/cras /bin/bash

pcap 77 7 /var/arpwatc /sbin/nologin

radiusd 95 95 / /bin/false

radvd 75 75 / /sbin/nologin

quagga 92 92 /var/run/quagga /sbin/login

wnn 49 49 /var/lib/wn /sbin/nologin

dovecot 97 97 /usr/libexec/dovecot /sbin/nologin

Page 50: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

50

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

3.1.3 Grupos después de una instalación comun En la tabla siguiente se lista los grupos estándar configurados por una instalación. Los grupos son almacenados en el archivo /etc/group.

Grupo GID Miembros

Root 0 root

Bin 1 root, bin,daemon

daemon 2 root,bin,daemon

Sys 3 root,bin,adm

Adm 4 Root, adm,daemon

Tty 5

Disk 6 root

Lp 7 daemon,

Mem 8

Kmem 9

Wheel 10 root

Mail 12 mail,post_x,exim

News 13 news

Uucp 14 uucp

Man 15

Games 20

Gopher 30

Dip 40

ftp 50

Lock 54

Nobody 99

usuarios 100

Rpm 37

Utmp 22

_oppy 19

Vcsa 69

Dbus 81

Ntp 38

Canna 39

Nscd 28

Rpc 32

postdrop 90

post_x 89

mailman 41

Named 25

postgres 26

Sshd 74

rpcuser 29

nfsnobody 65534

Pvm 24

Apache 48

Xfs 43

Gdm 42

Htt 101

Mysql 27

webalizer 67

Page 51: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 51

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

mailnull 47

Smmsp 51

Squid 23

Ldap 55

netdump 34

Pcap 77

quaggavt 102

Quagga 92

Radvd 75

Slocate 21

Wnn 49

dovecot 97

Radiusd 95

3.1.4 Grupos de usuario privado Linux utiliza un esquema de grupo privado de usuario (UPG), lo que hace más fácil de manejar los grupos de UNIX. Se crea un UPG siempre que se añade un nuevo usuario al sistema. Un UPG tiene el mismo nombre que el usuario para el cual se crea y ese usuario es el único miembro de ese UPG. Los UPGs hacen que sea más seguro configurar los privilegios por defecto para un nuevo archivo o directorio lo que permite a ambos, tanto el usuario como al grupo de ese usuario hacer modificaciones al archivo o directorio. El parámetro que determina qué permisos son aplicados a un nuevo archivo o directorio es llamado un umask y se configura en el archivo /etc/bashrc. Tradicionalmente en sistemas UNIX, el umask es configurado a 022, lo que sólo permite al usuario que creó el archivo o directorio realizar modificaciones. Bajo este esquema, todos los demás usuarios incluyendo miembros del grupo del creador no tienen derecho a realizar ninguna modificación. Sin embargo, bajo el esquema UPG, esta "protección de grupo" no es necesaria puesto que cada usuario tiene su propio grupo privado.

3.1.5 Contraseñas Shadow En entornos multiusuario es muy importante utilizar contraseñas shadow también conocido como Oscurecimiento de contraseñas, (proporcionadas por el paquete shadow-utils). Haciendo esto se mejora la seguridad de los archivos de autenticación del sistema. Por esta razón, el programa de instalación activa por defecto las contraseñas shadow. Lo siguiente es una lista de las ventajas de las contraseñas shadow sobre el método tradicional de almacenar contraseñas en los sistemas basados en UNIX:

. Mejora la seguridad del sistema al mover las contraseñas encriptadas desde el archivo /etc/passwd que puede leer todo el mundo, a /etc/shadow, el cual sólo puede ser leído por el usuario root. . Almacena información sobre las vigencias de las contraseñas. . Permite el uso del archivo /etc/login.defs para reforzar las políticas de seguridad.

Page 52: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

52

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

La mayoría de las utilidades proporcionadas por el paquete shadow-utils funcionan adecuadamente sin importar si las contraseñas shadow están activadas o no. Sin embargo, puesto que la información sobre la vigencia de las contraseñas es almacenada exclusivamente en el archivo /etc/shadow, cualquier comando que cree o modi_que la información sobre la vigencia de las contraseñas, no funcionará. Abajo se muestra una lista de los comandos que no funcionan a menos que se activen primero las contraseñas shadow: . chage . gpasswd . Las opciones /usr/sbin/usermod -e o -f . Las opciones /usr/sbin/useradd -e o -f

3.1.6 Ejemplos

Lo primero: la orden useradd.

El primer paso para crear una nueva cuenta consiste en utilizar el mandato useradd del siguiente modo:

useradd nombre_del_usuario

Ejemplo:

Lo segundo: la orden passwd.

Después de crear la nueva cuenta con useradd o que sigue a continuación es especificar una contraseña para el usuario. Determine una que le resulte fácil de recordar, que mezcle números, mayúsculas y minúsculas y que, preferentemente, no contenga palabras que se encontrarían fácilmente en el diccionario.

Aunque el sistema siempre tratará de prevenirlo cuando se escoja una mala contraseña, el sistema no le impedirá que lo haga. Especificar una nueva contraseña para un usuario, o bien cambiar la existente, se puede realizar utilizando el mandato passwd del siguiente modo:

passwd nombre_del_usuario

Page 53: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 53

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Ejemplo:

El sistema solicitará entonces que proceda a teclear la nueva contraseña para el usuario y que repita ésta para confirmar. No verá el echo, por seguridad, el sistema no mostrará los caracteres tecleados, por lo que debe hacerlo con cuidado. Si se considera que tal vez se cometieron errores de tecleado, puede presionarse las veces que sean necesarias la tecla <Backspace> o <Retroceso>. De cualquier forma el sistema le informará si coincide o no lo tecleado. Si todo salió bien recibirá como respuesta del sistema code 0. Si en cambio recibe code 1, significa que deberá repetir el procedimiento, ya que ocurrió un error.

Este procedimiento también puede utilizarse para cambiar una contraseña existente.

Opciones avanzadas.

En muchos casos pueden no ser necesarios, pero si se esta administrando un servidor o estación de trabajo, o bien se es un usuario un poco más experimentado, y se quiere crear una cuenta con mayores o menores restricciones, atributos y/o permisos, pueden utilizarse las siguientes opciones de useradd:

-c comment Se utiliza para especificar el archivo de comentario de campo para la nueva cuenta.

-d home dir Se utiliza para establecer el directorio de trabajo del usuario. Es conveniente, a fin de tener un sistema bien organizado, que este se localice dentro del directorio /home.

-e expire date Se utiliza para establecerla fecha de expiración de una cuenta de usuario. Esta debe ingresarse en el siguiente formato: AAAA-MM-DD.

-g initial group Se utiliza para establecer el grupo inicial al que pertenecerá el usuario. De forma predeterminada se establece como único grupo 1. Nota: el grupo asignado debe de existir.

-G group,[...] Se utiliza para establecer grupos adicionales a los que pertenecerá el usuario. Estos deben separarse utilizando una coma y sin espacios. Esto es muy

conveniente cuando se desea que el usuario tenga acceso a determinados recursos del sistema, como acceso a la unidad de disquetes, administración de cuentas PPP y POP. Nota: los grupos asignado deben de existir.

Page 54: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

54

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

-m Se utiliza para especificar que el directorio de trabajo del usuario debe ser creado si acaso este no existiese, y se copiaran dentro de este los archivos especificados en /etc/skel.

-s shell Se utiliza para establecer el Shell que podrá utilizar el usuario. De forma predeterminada, en Red Hat™ Linux® y Fedora™ Core, se establece bash como Shell predefinido.

-u uid Se utiliza para establecer el UID, es decir, la ID del usuario. Este debe ser único. De forma predeterminada se establece como UID el número mínimo mayor a 99 y mayor que el de otro usuario existente. Cuando se crea una cuenta de usuario por primera vez, como ocurre en Red Hat™ Linux® y Fedora™ Core generalmente se asignará 500 como UID del usuario. Los UID entre 0 y 99 son reservados para las cuentas de los servicios del sistema.

Ejemplo:

Lo anterior creará una cuenta de usuario llamada jperez, que se encuentra incluido en los grupos operadores y linux, que tendrá un UID=521, utilizará Bash como intérprete de mandatos y tendrá un directorio de trabajo en /home/jperez.

Existen más opciones y comentarios adicionales para el mandato useradd, estas se encuentran especificadas en los manuales -Man pages-. Para acceder a esta información, utilice el mandato man useradd desde una ventana terminal.

Eliminar una cuenta de usuario.

En ocasiones un administrador necesitará eliminar una o más cuentas de usuario. Este es un procedimiento principalmente utilizado en servidores y estaciones de trabajo a los cuales acceden múltiples usuarios. Para tal fin nos valdremos del mandato userdel. La sintaxis básica de userdel es la siguiente:

userdel nombre_del_usuario

Page 55: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 55

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Ejemplo:

Si se desea eliminar también todos los archivos y sub-directorios contenidos dentro del directorio de trabajo del usuario a eliminar, se debe agregar la opción -r:

userdel -r nombre_del_usuario

Ejemplo:

Manejo de Grupos:

Alta de grupos.

groupadd grupo-que-sea

Alta de grupos de sistema.

Un grupo de sistema es aquel que tiene un número de identidad de grupo (GID) por debajo del 500. Regularmente se asigna automáticamente el número de identidad de grupo más bajo disponible.

Page 56: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

56

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Baja de grupos

Asignación de usuario existente a grupos existentes.

Tambien se pueder agregar o modificar el grupo principal con el siguiente comando

Page 57: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 57

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Autoevaluación

1. ¿Cuales son los tipos de usuarios que existen en Linux?

2. ¿Cuál es el archivo donde se graba la configuración principal de los usuarios?

(a) passwd

(b) shadow

(c) hosts

(d) messages

3. ¿Cuál es el archivo donde se graba el password de los usuarios?

(a) passwd

(b) shadow

(c) hosts

(d) messages

Page 58: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

58

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 59: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 59

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

PROCESO DE ARRANQUE EN

LINUX

TEMA

Describir el proceso de aranque en Linux, asi como los componetes que intervienen en él.

OBETIVOS ESPECÍFICOS

Comprender el proceso de aranque, inicio y cierre del sistema

Conocer el gestor de arranque Grub

Concer la estructura de archivos

CONTENIDOS

Proceso de aranque, inicio y cierre del sistema

El Grub en linux

La estructura de archivos

UNIDAD

4

Page 60: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

60

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 61: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 61

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

4.1 PROCESO DE ARRANQUE, INICIO Y CIERRE DEL SISTEMA Una de las características más importantes y poderosas de Linux es el método abierto y configurable para el inicio del sistema operativo. Los usuarios son libres de configurar muchos aspectos del proceso de arranque, incluyendo qué programas se lanzarán al momento de arranque. De forma parecida, el cierre del sistema finaliza los procesos de forma organizada y configurable, aunque la personalización de este proceso casi nunca es necesaria. Entender el funcionamiento del proceso de arranque y cierre no sólo le permitirá personalizar, sino que también le facilitará resolver problemas relacionados con el inicio y el cierre del sistema.

4.1.1. Proceso de arranque A continuación obtendrá las etapas básicas del proceso de arranque para un sistema x86: 1. La BIOS del sistema comprueba y lanza la primera etapa del gestor de arranque del

MBR del disco duro primario. 2. La primera etapa del gestor de arranque se autocarga en memoria y lanza la segunda

etapa del gestor de arranque desde la partición /boot/.

3. La segunda etapa del gestor de arranque carga el kernel en memoria, lo cual en su momento carga los módulos necesarios y monta la partición root para sólo-lectura.

4. El kernel transfiere el control del proceso de arranque al programa /sbin/init.

5. El programa /sbin/init carga todos los servicios y herramientas de espacio del usuario y monta todas las particiones listadas en /etc/fstab.

6. Se le presenta al usuario una pantalla de inicio de conexión para el sistema Linux recién

iniciado. Ya que la configuración del proceso de arranque es más común que la del proceso de cierre, en el resto del capítulo se discutirá el modo en el que el proceso de arranque funciona y cómo se puede personalizar para satisfacer sus necesidades.

Page 62: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

62

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

4.2. VISTA DETALLADA DEL PROCESO DE ARRANQUE El inicio del proceso de arranque varía dependiendo de la plataforma de hardware usada. Sin embargo, una vez que se encuentra el kernel y se carga por el gestor de arranque, el proceso de arranque por defecto es idéntico a través de todas las arquitecturas. Este capítulo se basa principalmente en la arquitectura x86.

4.2.1. La BIOS

Cuando un ordenador x86 se carga, el procesador busca al final de la memoria del sistema por Basic Input/Output System o el programa BIOS y lo ejecuta. La BIOS controla no sólo el primer paso del proceso de arranque, sino que también proporciona una interfaz de bajo nivel para dispositivos periféricos. Por este motivo se escribe tan sólo en modo lectura, memoria permanente y está siempre disponible para el uso. Otras plataformas usan programas diferentes para ejecutar tareas a bajo nivel equivalentes a aquellas de la BIOS en el sistema x86. Por ejemplo, los ordenadores basados en Itanium usan el Shell Interfaz de Firmware extendible (Extensible Firmware Interface, EFI).

Una vez que se haya cargado, la BIOS chequea los periféricos y localiza un dispositivo con el que arrancar el sistema. Habitualmente, en primer lugar comprueba cualquier disquete y unidades de CDROM presente por los medios de arranque, y a continuación si esto falla, echa un vistazo a las unidades de disco duro del sistema. En la mayoría de los casos, el orden de búsqueda de las unidades para arrancar es controlado por una configuración de la BIOS y busca por el dispositivo maestro IDE en el bus IDE primario. La BIOS carga en memoria cualquier programa que resida en el primer sector de este dispositivo, llamado Registro de arranque principal o Master Boot Record (MBR). La MBR sólo tiene 512 bytes de tamaño y contiene las instrucciones de código de máquina para el arranque del equipo, llamado un gestor de arranque, así como también la tabla de particiones. Una vez que la BIOS haya encontrado y cargado el gestor de arranque en memoria, le deja el control del proceso de arranque a éste.

4.2.2. El gestor de arranque Dependiendo de la arquitectura del sistema, el proceso de arranque diferirá Ligeramente. Un gestor

de arranque para la plataforma x86 se divide en al menos dos etapas. La primera es un código binario de máquina pequeña en el MBR. Su única función es la de localizar el gestor de

Page 63: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 63

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

arranque de la segunda etapa y cargar la primera parte de éste en memoria.GRUB tiene la ventaja de ser capaz de leer particiones ext2 y ext3 1 y cargar su archivo de configuración. /boot/grub/grub.conf. al momento de arranque.

Una vez que el gestor de arranque de la segunda etapa haya determinado qué kernel arrancar, localizará el binario del kernel correspondiente en el directorio /boot/. El kernel binario es llamado usando el siguiente formato. /boot/vmlinuz-<kernel-version> (donde <kernel-version> corresponde a la versión del kernel especificada en las configuraciones del gestor de arranque). Para instrucciones sobre el uso del gestor de arranque para suministrar argumentos de línea de comandos al kernel. El gestor de arranque luego coloca una o más de las imágenes apropiadas de initramfs en la memoria. Luego, el kernel descomprime estas imágenes desde la memoria a /boot/, un sistema de archivos virtual basado en RAM, a través de cpio. El initrd es usado por el kernel para cargar controladores y módulos necesarios para arrancar el sistema. Esto es muy importante si posee unidades de disco duro SCSI o si está el sistema utiliza el sistema de archivos ext3. Una vez que el kernel y la imagen initramfs se cargan en memoria, el gestor de arranque pasa el control del proceso de arranque al kernel.

4.2.3. El kernel Cuando se carga el kernel, éste inicializa y configura la memoria del ordenador y el diferente hardware conectado al sistema, incluyendo todos los procesadores, subsistemas de entrada/salida y dispositivos de almacenamiento. A continuación buscará la imagen

Page 64: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

64

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

comprimida de initramfs en una ubicación predeterminada en memoria, la descomprimirá directamente a /sysroot/ y cargará todos los controladores necesarios. A continuación inicializa los dispositivos virtuales relacionados con el sistema de ficheros, tal como LVM o software RAID antes de completar los procesos initramfs y de liberar toda la memoria que la imagen del disco ocupó anteriormente. El kernel luego crea un dispositivo root, monta la partición root como sólo lectura y libera cualquier memoria no utilizada. Llegados a este punto, el kernel está cargado en memoria y operativo. Sin embargo, como no hay aplicaciones de usuario que permitan la entrada significativa de datos al sistema, no se puede hacer mucho más. Para configurar el entorno de usuario, el kernel inicia el programa /sbin/init.

4.2.4. Programa /sbin/init El programa /sbin/init (también llamado init) coordina el resto del proceso de arranque y configura el ambiente del usuario. Cuando el comando init arranca, se vuelve el padre o abuelo de todos los procesos que comienzan automáticamente en el sistema. Primero, ejecuta el script /etc/rc.d/rc.sysinit, que establece la ruta del entorno, activa el swap, verifica los sistemas de archivos y se encarga de todo lo que el sistema necesita tener hecho al momento de la inicialización. Por ejemplo, la mayoría de los sistemas usan un reloj, por lo tanto, el rc.sysinit lee el archivo de configuración para iniciar el hardware del reloj. Otro ejemplo es si hay procesos especiales en los puertos seriales que deben ser inicializados, rc.sysinit ejecutará el archivo /etc/rc.serial. El comando init luego ejecuta el script /etc/inittab, el cual describe cómo se debería configurar el sistema en cada nivel de ejecución SysV init. Los niveles de ejecución son un estado, o modo, definido por los servicios listados en el SysV directorio /etc/rc.d/rc<x>.d/, donde <x> es el número de nivel de ejecución. A continuación, el comando init configura la biblioteca de funciones fuente, /etc/rc.d/init.d/functions, para el sistema, que establece el modo en cómo iniciar o matar un programa y cómo determinar el PID del programa. El programa init inicia todos los procesos de fondo buscando en el directorio apropiado rc para el nivel de ejecución especificado por defecto en /etc/inittab. Los directorios rc están numerados para corresponder al nivel de ejecución que representan. Por ejemplo, /etc/rc.d/rc5.d/ es el directorio para el nivel de ejecución 5. Cuando se arranca el nivel de ejecución 5, el programa init consulta el directorio etc/rc.d/rc5.d/ para determinar qué procesos iniciar o parar. Casi todos los ficheros en /etc/rc.d/rc5.d/ son enlaces simbólicos apuntando a los scripts localizados en el directorio /etc/rc.d/init.d/. Los enlaces simbólicos se usan en cada uno de los directorios rc de manera que los niveles de ejecución puedan ser reconfigurados al crear, modificar y eliminar los enlaces simbólicos sin que afecte a los scripts actuales a los que se refiere. El nombre de cada enlace simbólico comienza con K o S. Los enlaces K son procesos eliminados en ese nivel de ejecución, mientras que aquellos que inician por S son procesos a iniciar.

Page 65: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 65

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

El comando init en primer lugar detiene todos los enlaces simbólicos de K en el directorio mediante la ejecución del comando /etc/rc.d/init.d/<command> <stop>, en el que < command>es el proceso a matar. A continuación inicia todos los enlaces simbólicos S al ejecutar /etc/rc.d/init.d/<command>. start.

4.2.5 Ejecutar programas adicionales en el momento de arranque El script /etc/rc.d/rc.local lo ejecuta el comando init en tiempo de arranque, o cuando se cambien niveles de ejecución. El agregar comandos al final de este script es una forma fácil de realizar tareas necesarias como arrancar servicios especiales o inicializar dispositivos sin tener que escribir scripts complejos de inicialización en el directorio /etc/rc.d/init.d/ y creando enlaces simbólicos. Se usa el script /etc/rc.serial si se deben configurar puertos seriales en el momento de arranque. Este script ejecuta los comandos setserial para configurar los puertos seriales del sistema.

4.2.6 Niveles de ejecución de SysV Init

El sistema de niveles de ejecución SysV init provee de un proceso estándar para controlar cuáles programas init lanza o detiene cuando se inicializa un nivel de ejecución. SysV init fué escogido porque es más fácil de usar y más fiexible que el proceso tradicional init estilo BSD. Los ficheros de configuración para SysV init están en el directorio /etc/rc.d/. Dentro de este directorio, se encuentran los scripts rc, rc.local, rc.sysinit, y, opcionalmente, los scripts rc.serial así como los siguientes directorios: init.d/ rc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/ El directorio init.d/ contiene los scripts usados por el comando /sbin/init cuando se controlan los servicios. Cada uno de los directorios numerados representa los seis niveles de ejecución predeterminados configurados por defecto bajo Linux.

4.2.7 Niveles de ejecución La idea detrás de los niveles de ejecución de SysV init gira alrededor del hecho que sistemas diferentes se pueden usar de formas diferentes. Por ejemplo, un servidor corre de forma más eficiente sin el consumo de recursos del sistema excesivo creado por el sistema X. Otras veces, el administrador del sistema puede necesitar operar el sistema en un nivel más bajo de ejecución para realizar tareas de diagnóstico, como reparar corrupción del disco duro en el nivel de ejecución 1. Las características de un nivel de ejecución dado determinan qué servicios son detenidos o iniciados por init. Por ejemplo, el nivel de ejecución 1 (modo usuario único) detiene cualquier servicio de red, mientras que el nivel 3 arranca estos servicios. Asignando servicios específicos a ser detenidos o iniciados en un nivel dado, init puede fácilmente cambiar el modo de la máquina sin que el usuario tenga que manualmente arrancar o detener servicios.

Page 66: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

66

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Los siguientes niveles de ejecución están definidos de forma predeterminada para Linux: . 0 . Parar . 1 . Modo texto usuario único . 2 . Sin usar (usuario-definible) . 3 . Modo texto multiusuario completo . 4 . Sin usar (usuario-definible) . 5 . Modo gráfico multiusuario completo (con una pantalla de inicio de sesión basada en X) . 6 . Rearrancar

Generalmente, los usuarios utilizan Linux al nivel de ejecución 3 o nivel de ejecución 5.ambos modos multiusuario. Ya que los niveles de ejecución 2 y 4 no son usados, los usuarios a veces personalizan estos niveles para cubrir necesidades específicas. El nivel de ejecución por defecto para el sistema está listado en /etc/inittab. Para saber el nivel de ejecución por defecto de un sistema, busque por la línea similar a la que se muestra abajo cerca de la parte superior de /etc/inittab: id:5:initdefault: El nivel de ejecución predeterminado en este ejemplo es cinco, como indica el número después del punto y coma. Para cambiarlo, modifique /etc/inittab como usuario root.

4.2.8 Utilidades de los niveles de ejecución Una de las mejores formas de configurar los niveles de ejecución es usando la utilidad initscript.Estas herramientas están diseñadas para simplificar las tareas de mantener archivos en la jerarquía del directorio SysV init y descargan a los administradores de sistemas de tener que directamente manipular numerosos enlaces simbólicos en los subdirectorios de /etc/rc.d/. Linux ofrece tres de tales utilidades: . /sbin/chkconfig . La utilidad /sbin/chkconfig es una herramienta de línea de comandos

Page 67: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 67

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

sencilla para mantener la jerarquía del directorio /etc/rc.d/init.d. . /sbin/ntsysv.La utilidad basada en ncurses /sbin/ntsysv provee de una interfaz interactiva basada en texto, que muchos encuentran más fácil de usar que chkconfig. . Herramienta de configuración de servicios . El programa de interfaz gráfica Herramienta de configuración de servicios (system-config-services) es una utilidad fiexible para la configuración de niveles de ejecución.

4.2.9 Apagar Para apagar Linux, el usuario root puede ejecutar el comando /sbin/shutdown. La página man para shutdown tiene una lista completa de opciones, pero las dos usadas más comúnmente son: /sbin/shutdown -h now /sbin/shutdown -r now Después de apagar todo, la opción -h detendrá la máquina, y la opción -r la reiniciará. Los usuarios de consola PAM pueden usar los comandos reboot y halt para apagar el equipo mientras se está en niveles de ejecución 1 hasta 5. Para más información sobre los usuarios de consola. Si la computadora no se apaga asímisma, tenga cuidado de no apagar la computadora hasta que aparezca un mensaje indicando que el sistema ha sido detenido. Si no espera por este mensaje puede significar que no todas las particiones del disco duro han sido desmontadas, y puede llevar a un sistema de archivos corrupto.

4.2.10 El gestor de arranque GRUB

Cuando se enciende un equipo con Red Hat Enterprise Linux, el sistema operativo es cargado en memoria por un programa especial llamado gestor de arranque. Un programa gestor de arranque existe en el disco duro primario del sistema (o en otros dispositivos) y es responsable de la carga del kernel de Linux con sus archivos necesarios o (en algunos casos) de otros sistemas operativos en la memoria.

Page 68: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

68

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

a) Gestores de arranque y arquitectura del sistema Cada arquitectura de sistemas que pueda ejecutar Red Hat Enterprise Linux usa un gestor de arranque diferente. La lista siguiente muestra los gestores de arranque disponibles para cada arquitectura. Arquitectura Gestores de arranque AMD® AMD64 GRUB IBM® eServer. iSeries. OS/400® IBM® eServer. pSeries. YABOOT IBM® S/390® z/IPL IBM® eServer. zSeries® z/IPL Intel® Itanium. ELILO x86 GRUB

Este capítulo explica comandos y opciones de configuración para el gestor de arranque GRUB suministrado con Linux para la arquitectura x86.

b) GRUB

GNU GRand Unified Boot loader o GRUB es un programa que habilita al usuario a seleccionar qué sistema operativo instalado o kernel cargar en el momento de arranque del sistema. Permite también que el usuario transmita argumentos al kernel.

Page 69: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 69

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

c) Proceso de arranque en un sistema x86 y GRUB Esta sección explica con más detalle el papel específico que desempeña GRUB al arrancar un sistema x86. Para hacerse una idea del proceso de arranque, GRUB se carga asimismo en la memoria en las diferentes etapas: 1. La etapa 1 o cargador de arranque primario se lee en la memoria por el BIOS desde el

MBR1.El gestor de arranque primario existe en menos de 512 bytes de espacio en disco dentro del MBR y es capaz de cargar bien sea la etapa 1.5 o la etapa 2 del gestor de arranque.

2. La Etapa 1 del gestor de arranque se lee en la memoria por el gestor de arranque de la

Etapa 1, si es necesario. Determinados hardware requieren un paso intermedio para pasar a la Etapa 2 del gestor de arranque. Esto sucede a menudo cuando la partición /boot/ está por encima del cilindro 1024 del disco duro o cuando se usa el modo LBA. La Etapa 1.5 del gestor de arranque se encuentra en la partición /boot/ o en una pequeña parte del MBR y la partición /boot/.

3. La Etapa 2 o el gestor de arranque secundario se lee en la memoria. El gestor de

arranque secundario visualiza el menú GRUB y el entorno de comandos. Esta interfaz le permite seleccionar qué sistema operativo o kernel arrancar, pasar argumentos al kernel o ver los parámetros del sistema.

4. El gestor de arranque secundario lee el sistema operativo o el kernel así como también los contenidos de /boot/sysroot/ en memoria. Una vez que GRUB determina qué sistema operativo iniciar, éste lo carga en la memoria y transfiere el control de la máquina a dicho sistema operativo.

El método usado para arrancar Linux se conoce como método de carga directa porque el gestor de arranque carga el sistema operativo directamente. No existe un intermediario entre el gestor de arranque y el kernel. El proceso de arranque usado por otros sistemas operativos puede variar. Por ejemplo, los sistemas operativos de Microsoft® Windows®, así como otros sistemas operativos, se cargan mediante un método de arranque de carga encadenada. Bajo este método, el MBR señala el primer sector de la partición que tiene el sistema operativo. Allí encuentra los archivos necesarios para arrancar el sistema operativo. GRUB soporta ambos métodos de arranque, directo y de carga encadenada, permitiendo arrancar desde casi cualquier sistema operativo.

d) Funciones de GRUB

GRUB contiene una serie de funciones que lo convierten en el método favorito respecto al resto de gestores de arranque disponibles para la arquitectura x86. A continuación tiene una lista de las características más importantes: . GRUB proporciona un verdadero entorno basado en comandos, pre-sistema operativo, para las máquinas x86. Esta funcionalidad le otorga al usuario una gran flexibilidad en la carga de sistemas operativos con opciones específicas o con la recopilación de información sobre el sistema. Durante muchos años, las arquitecturas diferentes a x86 han usado entornos previos al sistema operativo que permiten arrancar el sistema desde una línea de comandos.

Page 70: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

70

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

. GRUB soporta el modo Direccionamiento Lógico de Bloques (LBA). El modo LBA coloca la conversión de direccionamiento utilizada para buscar archivos en la unidad de disco duro del firmware y se utiliza en muchos discos IDE y en todos los discos duros SCSI. Antes de LBA, los gestores de arranque encontraban la limitación del cilindro 1024 del BIOS, donde el BIOS no podía encontrar un archivo después de ese cabezal de cilindro del disco. El soporte LBA permite que GRUB arranque los sistemas operativos desde las particiones más allá del límite de 1024 cilindros, siempre y cuando el BIOS del sistema soporte el modo LBA. La mayoría de las revisiones más modernas de la BIOS soportan el modo LBA.. GRUB puede leer las particiones ext2. Esto permite que GRUB acceda a su archivo de configuración, /boot/grub/grub.conf, cada vez que el sistema arranca, eliminando la necesidad que tiene el usuario de escribir una nueva versión de la primera etapa del gestor de arranque al MBR en caso de que se produzcan cambios de la configuración. El único caso en el que el usuario necesitaría reinstalar GRUB en el MBR es en caso de que la localización física de la partición /boot/ se traslade en el disco. e) Instalación de GRUB

Si no instaló GRUB durante el proceso de instalación, se puede hacer después. Una vez instalado, se convierte en el gestor de arranque por defecto. Antes de instalar GRUB, debería asegurarse de que cuenta con el último paquete disponible de GRUB desde los CD-ROMs de instalación. Una vez que el paquete GRUB esté instalado, abra un intérprete de comandos de la shell y ejecute el comando /sbin/grub-install <ubicación> donde <ubicación> es la ubicación en la que la Etapa 1 de GRUB debería ser instalado. Por ejemplo, el comando siguiente instala GRUB al MBR del dispositivo maestro IDE en el bus IDE primario: /sbin/grub-install /dev/hda La próxima vez que arranque el sistema, el menú del gestor de arranque gráfico GRUB aparecerá antes del que el kernel se cargue en memoria.

f) Terminología de GRUB

Una de las cuestiones más importantes que deben entenderse antes de utilizar GRUB es cómo el programa hace referencia a los dispositivos, por ejemplo, a los discos duros y a las particiones. Esta información es muy importante si desea configurar GRUB para arrancar varios sistemas operativos.

g) Nombres de dispositivos

Cuando se refiera a un dispositivo específico con GRUB, haga esto usando el formato siguiente (observe que los paréntesis y las comas son muy importantes en la sintaxis): (<tipo-de-dispositivo> <numero-dispositivo-bios> , <numero-particion> ) El <tipo-de-dispositivo> especifica el tipo de dispositivo desde el cual inicia GRUB. Las dos opciones más comunes son hd para un disco duro o fd para un disquete de 3.5. Un tipo de dispositivo menos usado también está disponible, llamado nd para un disco de la red.

El <numero-dispositivo-bios> es el número del dispositivo BIOS. El disco duro IDE primario se numera 0 y un disco duro IDE secundario se numera 1. La sintaxis es equivalente a

Page 71: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 71

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

aquella utilizada para los dispositivos por el kernel. Por ejemplo, a en hda para el kernel es análogo a 0 en hd0 para GRUB, b en hdb es análogo a 1 en hd1, y así sucesivamente. El <numero-particion> hace referencia al número de una partición concreta en un dispositivo. Al igual que en el caso de <número-dispositivo-bios> , la mayoría de los tipos de particiones son numeradas comenzando por 0. Aunque la mayoría de las particiones se especifican con números, si el sistema usa particiones BSD a éstas se hará referencia con letras, con a correspondiendo a 0, b correspondiendo a 1 y así sucesivamente.

h) Nombres de archivos y listas de bloqueo

Al escribir comandos en GRUB que hagan referencia a un archivo, como una lista de menús, es necesario especificar una ruta de archivos absoluta después de los números de dispositivo y partición. Lo siguiente ilustra la estructura de tal comando: (<tipo-dispositivo><numero-dispositivo> , <numero-particion>) </ruta/a/archivo> En este ejemplo, reemplace <tipo-dispositivo> con hd, fd o nd. Reemplace <finumero-dispositivo> con el número entero para el dispositivo. Reemplace </ruta/a/archivo> con una ruta absoluta relativa al nivel más superior del dispositivo. También puede especificar archivos a GRUB que no aparecen realmente en el sistema de archivos, tal como un gestor de arranque en cadena que aparece en los primeros bloques de la partición. Para cargar tales archivos, deberá indicar una lista de bloques, que indique a GRUB, bloque por bloque, la ubicación exacta del archivo en la partición. Puesto que un archivo puede estar formado por varios conjuntos de bloques, hay una sintaxis específica para escribir listas de bloques. Cada bloque que contiene el archivo se describe con un número de desplazamiento de bloques seguido de un número de bloques de ese punto de desplazamiento. Los desplazamientos de bloques se listan secuencialmente y delimitados por comas. La siguiente es una lista de bloques de ejemplo: 0+50,100+25,200+1 Esta lista de bloques de ejemplo especifica un archivo que empieza en el primer bloque de la partición y que usa los bloques del 0 al 49, del 99 al 124, y el 199. Saber cómo escribir listas de bloques es útil al utilizar GRUB para cargar sistemas operativos que usan el método de carga encadenada. Puede suprimir el número de desplazamiento de bloques si empieza por el bloque 0. Por ejemplo, el archivo de carga encadenada de la primera partición del primer disco duro tendrá el nombre siguiente: (hd0,0)+1 Lo siguiente muestra el comando chainloader con una designación de lista de bloques similar en la línea de comandos de GRUB después de establecer el dispositivo correcto y la partición adecuada como raíz: chainloader +1

Page 72: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

72

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

i) El Sistema de archivos raíz y GRUB Algunos usuarios se confunden con el uso del término sistema de archivos raíz tiene un significado diferente con relación a GRUB. Es importante recordar que el sistema de archivos raíz de GRUB no tiene nada que ver con el sistema de archivos raíz de Linux. El sistema de archivos raíz de GRUB es el nivel superior del dispositivo especificado. Por ejemplo, el archivo imagen (hd0,0)/grub/splash.xpm.gz está ubicado dentro del directorio /grub/ en el nivel superior (o raíz) de la partición (hd0,0) (la cual es en verdad la partición /boot/ para el sistema). Luego, se ejecuta el comando kernel con la ubicación del archivo del kernel como una opción. Una vez que el kernel de Linux inicia, establece el sistema de archivos raíz con el cual los usuarios de Linux están familiarizados. El sistema de archivos raíz de GRUB original y sus montajes se olvidan; la única finalidad de su existencia era arrancar el archivo del kernel.

j) Archivo de configuración de menú de GRUB El archivo de configuración (/boot/grub/grub.conf), usado para crear la lista en la interfaz de menú de GRUB de los sistemas operativos para el arranque, básicamente permite al usuario seleccionar un grupo predefinido de comandos para su ejecución de configuración.

k) Estructura del archivo de configuración El archivo de configuración de la interfaz de menú de GRUB es /boot/grub/grub.conf. Los comandos para configurar las preferencias globales para la interfaz de menú están ubicados al inicio del archivo, seguido de las diferentes estrofas para cada sistema operativo o kernels listados en el menú. El siguiente es un ejemplo de archivo de configuración de menú de GRUB muy básico diseñado para arrancar bien sea Linux o Microsoft Windows 2000:

default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux AS (2.6.8-1.523) root (hd0,0) kernel /vmlinuz-2.6.8-1.523 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.8-1.523.img # section to load Windows title Windows rootnoverify (hd0,0) chainloader +1

Este archivo indicará a GRUB que cree un menú con Linux como el sistema operativo predeterminado y que establezca un arranque automático después de 10 segundos. Se proporcionan dos secciones, una para cada entrada de sistema, con comandos específicos para la tabla de partición del sistema.

Page 73: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 73

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

l) Cambiar los niveles de ejecución en el tiempo de arranque Bajo Linux, es posible cambiar el nivel de ejecución predeterminado en el momento de arranque. Para cambiar el nivel de ejecución de una sesión de arranque, utilice las instrucciones siguientes: . Cuando la pantalla de menú de GRUB aparece durante el arranque, presione cualquier tecla para entrar al menú de GRUB (dentro de los primeros tres segundos). . Presione la tecla [a] para añadir al comando kernel. . Añada * espacio +fi* nivel-de-ejecucion + al final de la línea de opciones de arranque para iniciar en el nivel de ejecución deseado. Por ejemplo, la entrada siguiente iniciará un proceso de arranque en el nivel 3. grub append> ro root=LABEL=/ rhgb quiet 3

Autoevaluación

1. Explique que es el grub y cual es su función

2. Indique cuales son los runlevels y que se realiza con cada uno de ellos

3. ¿Que es FHS, y cual es su ventaja?

Page 74: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

74

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 75: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 75

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

FILESYSTEMS EN LINUX

TEMA

Describir el manejo de las particiones en linux

OBJETIVOS ESPECÍFICOS

Comprender como se interpretar, crear, modificar y eliminar particiones en Linux

CONTENIDOS

Particiones – conceptos basicos

Herramientas de administracion

Creacion de particiones en Linux

UNIDAD

5

Page 76: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

76

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 77: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 77

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

5.1. PARTICIONES 5.1.1. Conceptos básicos:

En linux las particiones donde residen los archivos van sobre los sistemas ext2 o ext3 generalmente, aunque también soportan otro tipo de sistema de ficheros.

Las particiones swap son equivalente al pagefile.sys de M$ windows es decir son las encargadas de gestionar la memoria "no fisica" del sistema (memoria virtual), en principio el tamaño de la particion swap no deberían ser menos de 128MB, en general se aplica una regla que si bien no esta establecida como un axioma, si es aceptada por casi todos los usuarios de sistema linux-unix.

El tamaño de la memoria SWAP es el doble que la fisica disponible

EJM: 512 mgb de ram=1024mgb de swap.

En una PC standard las particiones se reparten de la siguiente manera:

-Se le asigna una etiqueta común a los discos IDE: hd -Se le asigna una etiqueta común a los disco SCSI : sd -Se le asigna una letra a cada disco, usando un orden alfanumérico: "a" primer disco,"b" segundo disco, "c" tercer disco y "d" la cuarto disco. -Se le asigna un numero a cada partición: 1, 2, 3...n Por lo que tendríamos: hda3 (Primer disco IDE, partición 3)hdb2 (Segundo disco IDE, partición 2)sdc1 (Tercer disco SCSI, partición 1) -En linux solo se pueden montar 4 particiones primarias. 3 particiones primarias y 1 extendida que puede estar vacía o alojar varias particiones o unidades lógicas.

En Linux se denotan igual que si fueran 4 primarias, la extendida no tiene por que ser la ultima, Por ejemplo: tenemos la partición extendida hda2, las que están "dentro", las lógicas, pueden ser hda4, hda5, hda5.

Los sistemas operativos linux soportan múltiples tipos de partición, para el almacenamiento de datos, que no para su ejecución, dependiendo de que módulos estén cargados en el kernel (ver con lsmod), generalmente particiones fat16,fat32,ntfs... son soportadas en las ultimas versiones de los kernels 2.4.x.

5.1.2. Herramientas para la administración.

En casi todos los sistemas Linux o basados en Unix (freebsd, solaris, es distinto) existen una serie de utilidades para el manejo de particiones.

Page 78: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

78

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Para mostrar información en pantalla existen multitud de aplicación en modo X que lo hacen, pero una manera casi absoluta de saberlo es, o bien en modo consola, o bien un front-end que muestre la información del archivo /proc/partitions.

Para hacerlo en modo consola bastara con hacer un cat al archivo (cat /proc/partitions)

Como se puede ver, se muestra gran información como: uso, principio y fin de los bloques, capacidad, sectores, nombre asignado, estado, etc.

El comando df nos muestra información útil sobre el estado de las unidades montadas.

La partición donde esta alojado el s.o se muestra como raíz (/), las demás pueden ir montadas en directorios, algunas deben estar en su directorio especifico si tienen

-/boot donde ira montada la partición de arranque (no es necesario para el funcionamiento puesto que los archivos se pueden montar en el mismo directorio sin necesidad de ser una partición distinta a la raíz).

-/home aquí se pueden montar los archivos que se usen en un servidor o espacio para usuarios.

-/directorio.cualquiera en este se pueden montar las particiones que se deseen, pejm: montar la partición de M$ win 98, otro s.o de linux, y la partición donde se encuentra M$ win 2000, se podrían distribuir a su antojo, /win98, /debian/win2000 o dentro de cualquier directorio, por defecto la mayoría de distribuciones montan las particiones no raíz, no especificas en el directorio /mnt.

Page 79: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 79

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Partiendo de esto, para usar una partición hay que montarla,para montar una partición se usa el comando mount o un front-end para ello, el comando tiene una serie de opciones que se describen muy bien en el man del comando.

La síntesis básica del comando es la siguiente:

mount -[parametros de montaje] [tipo de partición] [dev/archivo donde se ubique la partición] [directorio donde se desee montarla]

El comando para desmontar la partición es umount con la misma síntesis

Fichero /etc/mtab

Contiene una lista de los filesystem que están montados en el sistema

Ejemplo de fichero /etc/mtab

Page 80: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

80

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Fichero /etc/fstab

Al iniciar el sistema se montan los filesystems listados en /etc/fstab

cada línea del fichero tiene las siguientes columnas (file system) (mount point) (tipo) (opciones) (dump) (pass)

Ejemplo:

/dev/hda9 /home ext3 defaults 0 2

Alguna de las opciones son: o rw monta tipo lectura/escritura o ro sólo lectura o auto/noauto monta/no monta con mount -a (monta/no monta al inicio) o exec/noexec Permite/no permite la ejecución de ficheros binarios en la

partición o suid/nosuid permite/no permite que los bits setuid y setgid tengan efecto o dev/nodev interpreta/no interpreta dispositivos de bloques o caracteres en el

filesystem o async toda la I/O se realiza de forma asíncrona o user puede montarlo un usuario (y sólo el que lo monta puede desmontarlo);

implica las opciones noexec, nosuid y nodev, a menos que se fuercen (p.e. user,exec,suid,dev)

o users puede montarlo/desmontarlo un usuario y el que desmonta no tiene que ser el que lo montó; implica las mismas opciones que user

o defaults selecciona opciones por defecto (rw, suid, dev, exec, auto, nouser y async)

o Filesystems específicos pueden tener opciones específicas:

o ver el manual de mount para más detalles Si un directorio aparece listado en el fstab puede montarse sin especificar el

dispositivo:

$ mount /home

Campos dump y pass

Page 81: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 81

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

dump Lo usa el comando dump para determinar de que filesystems hacer copias de seguridad

o valor 1 o 0 según si la partición va a tener un backup controlado por dump o no (normalmente no se usa)

pass Lo usa el comando fsck para determinar el orden en que se chequean los filesystems al iniciar el sistema

o si 0, el filesystem no se chequea o si > 0, los filesystems se chequean en el orden indicado por los números

si varios tienen el mismo número, se chequean en paralelo (si es posible)

normalmente / tendrá 1 y el resto 2

Si se desea agregar una partición para se monte automáticamente cuando se incie el sistema operativo, se tendría que agregar dentro del fstab

Nótese que se ha añadido una partición ext3 que se encuentra en el primer disco IDE que corresponde a la primera partición lógica de este, la cual se montara en el diracorui /mnt/Debian con sistema de archivos ext3, y opciones de montaje por default.

Viendo el ejemplo, nos damos cuenta de que el fstab no solo sirve para las particiones, si no que sirve para multitud de hardware, el disco de 3/14, las unidades de cd-rom, las unidades tipo cámaras digitales, video dv, unidades externas por USB, unidades por red tipo NFS, samba, etc; todos ellos tienen un archivo nodo en dev, se montan en algún directorio, y se les asigna un valor.

En linux existe un comando fdisk, que nos permite la modificación, creación y otros parametros para el uso con particiones y discos (ver man del comando) este comando tiene la funcionalidad del mismo de M$ DOS (puesto que es una adopción de los sistemas Unix para este s.o) pero el original, como suele decirse, es mejor, las posibilidades de fdisk en linux no son comparables de ninguna manera a los sistemas basados en ms-dos.

Page 82: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

82

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

También existen herramientas en modo gráfico, (qtparted, gparted, diskdruid, diskdrake) para poder trabajar con discos.

Page 83: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 83

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Hoy en día, exceptuando algunas distribuciones muy especificas, las demás permiten una instalación teniendo en cuenta que el usuario novel en linux probablemente desconozca detalles sobre estos temas, es decir proporcionan herramientas gráficas y asistentes comprensibles para realizar un particionado de manera automática.

Ejemplos de montaje de ficheros:

En este caso montamos la tercera partición del primer disco en el directorio /home, el sistema de ficheros es ext3.

Page 84: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

84

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

En este otro montamos la segunda partición del segundo disco en el directorio /mnt/Windows, es el sistema de ficheros es vfat, también podría ser NTFS.

Aquí estamos montando un sistemas de ficheros nfs que nos provee la maquina 192.168.10.2 (concretamente nos comparte /home) en nuestro directorio /home.

En este caso hemos montado una imagen iso en un directorio /imágenes

5.2 CREACIÓN DE PARTICIONES EN LINUX

Si añadimos un nuevo disco al sistema ya instalado deberemos crear las particiones y los sistemas de ficheros

Esta operación implica los siguientes pasos: 1. creación de particiones (comando fdisk) 2. creación de los sistemas de ficheros (comando mkfs) 3. montado de los sistemas de ficheros (comando mount)

Page 85: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 85

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

5.2.1 El comando para crear particiones es fdisk

Formato:

fdisk [opciones] dispositivo

donde dispositivo es el dispositivo del disco (/dev/hdx en IDE, /dev/sdx para SCSI o SATA)

Debemos tener permiso de administrador para usarlo Opciones:

o -l muestra la tabla de particiones del dispositivo

fdisk se usa mediante un menú:

Page 86: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

86

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Ejemplo

Cree una partición primaria de 5 GB

usamos n (new):

Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-20805, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-20805, default 20805): +5G Command (m for help): p Disk /dev/hdb: 10.7 GB, 10737418240 bytes 16 heads, 63 sectors/track, 20805 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 9689 4883224+ 83 Linux

Por defecto, crea la partición tipo Linux (Id 83)

con l (list) vemos el tipo de particiones soportadas para cambiar el tipo de partición se usa t (type)

Command (m for help): t 1 Selected partition 1 Hex code (type L to list codes): 82 Changed system type of partition 1 to 82 (Linux swap / Solaris) Command (m for help): p Disk /dev/hdb: 10.7 GB, 10737418240 bytes 16 heads, 63 sectors/track, 20805 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 9689 4883224+ 82 Linux swap / Solaris

Para que se guarden los cambios debemos usar w (write)

Page 87: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 87

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

5.3 OTRAS HERRAMIENTAS

Existen otras herramientas para modificar las particiones: cfdisk

interfaz para el fdisk (también escribe la tabla de particiones) parted

programa de GNU que permite crear, destruir, cambiar el tamaño, chequear y copiar particiones

qtparted clónico del Partition Magic para Linux (basado en libparted)

Partition Magic programa comercial de la compañía Symantec que puede manejar diversos filesystems

5.4. CREACIÓN DE LOS SISTEMAS DE FICHEROS

Sobre cada partición debemos crear sistemas de ficheros con el comando mkfs

Formato:

mkfs [-V] [-t filesystem] dispositivo [n_bloques]

Opciones: o -V verbose o -t filesystem tipo de sistema de ficheros a crear (ext2, ext3, xfs, etc.)

si no se especifica se crea el por defecto del sistema (en Linux ext2) o n_bloques número de bloques usados para el sistema de ficheros (si no se

pone, se usa toda la partición)

mkfs es un front-end a distintos comandos, que permiten crear particiones de los tipos específicos:

mkfs.ext2 o mke2fs crea sistemas ext2 mkfs.ext3 crea sistemas ext3, equivalente a mkfs.ext2 -j mkfs.jfs, mkfs.reiserfs, mkfs.xfs crean sistemas JFS, ReiserFS y XFS,

respectivamente mkfs.msdos, mkfs.vfat crea sistemas MS-DOS mkswap crea un sistema de ficheros de tipo Linux swap

Cada uno de estos comandos pueden tener distintas opciones

Comandos relacionados

dumpe2fs muestra información de sistemas de ficheros ext2/ext3 o información sobre inodos, bloques y grupos

tune2fs permite ajustar parámetros en sistemas ext2/ext3 o p.e. define el intervalo entre chequeos automáticos, convierte ext2 en ext3,

etc. e2label cambia la etiqueta de un sistema ext2/ext3

Page 88: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

88

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

existen comandos similares para otros tipos de sistemas de ficheros, p.e. reiserfstune, jfs_tune, etc.

5.4.1. Partición de intercambio

Si lo que creamos es una partición de intercambio, la debemos inicializar con mkswap

# fdisk -l /dev/hd Disk /dev/hdb: 10.7 GB, 10737418240 bytes 16 heads, 63 sectors/track, 20805 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 9689 4883224+ 83 Linux /dev/hdb2 9690 20805 5602464 82 Linux swap / Solaris

# mkswap /dev/hdb2 Setting up swapspace version 1, size = 5736919 kB no label, UUID=a6c2849b-c33e-478e-8a8d-fecfe3f18f6d

Una vez creada debemos activarla con swapon

# swapon /dev/hdb2 # swapon -s Filename Type Size Used Priority /dev/hda7 partition 377488 0 -1 /dev/hdb2 partition 5602456 0 -2

Finalmente, para que se active en el arranque, debe incluirse la entrada correspondiente en el fichero /etc/fstab

/dev/hda2 none swap sw 0 0

5.5. MONTADO DE LOS SISTEMAS DE FICHEROS

Para poder acceder a los sistemas de ficheros debemos montarlos

Los comandos para montar y desmontar son: mount y umount

Comando mount

Permite asociar (montar) directorios a sistemas de ficheros

Page 89: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 89

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Ejemplo

$ mount -t ext3 /dev/hdb1 /home2

Formato

mount [opciones] [-t tipo] [disp.] [dir.]

Algunas opciones: o tipo tipo de sistema de ficheros (ext2, ext3, reiserfs, vfat, etc.); si se pone auto

intenta determinar de forma automágica o -a monta los filesystems listados en /etc/fstab o -r/-w monta los sistemas de sólo lectura/escritura o -f simulación; usado con -v (verbose) para chequear o -n monta sin añadir la entrada a /etc/mtab; se usa cuando /etc es sólo lectura o -o opciones opciones de montado; formato igual al usado en el fichero fstab

Comando umount

Desmonta los sistemas de ficheros

Formato

umount [opciones] directorio

Ejemplo:

$ umount /home2

Algunas opciones o -a desmonta los filesystems listados en /etc/mtab o -r si falla, intenta remontar sólo lectura o -f fuerza el desmontado

Si hay algún proceso bloqueando el filesystem, este no se puede desmontar: o usar el comando fuser -c directorio para ver el PID del proceso

Autofs

Sistema que permite montar los filesystems ``bajo demanda''

cuando se accede al directorio, este se monta se desmonta automáticamente después de un tiempo de inactividad (por defecto, 5

minutos) suele usarse para montar sistemas remotos con NFS Ficheros de configuración:

o /etc/auto.master define los puntos de montado por cada uno de los puntos definidos, se inicia un proceso automount

usando los parámetros indicados Ejemplo de auto.master:

Page 90: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

90

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

/home /etc/auto.home /misc /etc/auto.misc --timeout 60

o Los ficheros le indican al automount los filesystems a montar o Ejemplo de auto.misc

cdrom -fstype=iso9660,ro :/dev/cdrom floppy -fstype=auto :/dev/fd0 windoz -fstype=vfat :/dev/hda1

o esto monta el cdrom, el floppy y la partición /dev/hda1 en los directorios /misc/cdrom, /misc/floppy y /misc/windoz respectivamente

Supermount

Tipo de pseudofilesystem que para manejar dispositivos removibles (como cdroms o diskettes)

el filesystem se monta/desmonta automáticamente cuando se introduce/saca el CD o disquete

la línea correspondiente en el fstab debe ser del tipo: none /mnt/cdrom supermount dev=/dev/cdrom,fs=auto 0 0 se incluye ''de serie'' en algunas distribuciones (p.e. Mandriva)

o en otras es necesario bajarse un parche para el kernel

pmount

Comando que permite al usuario montar dispositivos hotpluggable (como cdroms, pendrives, etc.)

el dispositivo se monta debajo del directorio /media no necesita estar listado en /etc/fstab puede usar HAL (Hardware Abstraction Layer) pra obtener información de los

dispositivos

gnome-volume-manager

En el entorno GNOME monta automáticamente dispositivos removibles cuando se conectan o se inserta un CD

usa udev y HAL el usuario puede configurar la acción realizada al conectarse el dispositivo (p.e.

empezar a tocar un CD de musica cuando se inserta)

Page 91: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 91

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

5.6. CHEQUEO DEL SISTEMA DE FICHEROS

Periódicamente es necesario chequear los sistemas de ficheros

el comando básico para chequeo y reparación es fsck Al igual que mkfs, fsck es un front-end a comandos específicos para cada filesystem:

e2fsck, fsck.ext2 o fsck.ext3 chequean sistemas ext2/ext3 fsck.jfs, fsck.reiserfs, fsck.xfs para JFS, ReiserFS y XFS fsck.msdos, fsck.vfat para sistemas MS-DOS

Alguno de los errores que pueden aparecer se deben a:

Varios ficheros que usan el mismo bloque Bloques marcados libres y ocupados simultáneamente Número de enlaces erróneo Nodos-i conteniendo información pero que no están en la entrada del directorio (la

información se recupera en el directorio lost+found con el número de nodo-i) Entradas del directorio que apuntan a nodos-i ilegales o vacíos etc.

Algunas de las opciones de fsck son:

-t filesystem tipo de filesystem a chequear -A chequea los filesystems listados en /etc/fstab -N no ejecuta; simplemente indica lo que haría -R usado con -A no chequea el filesystem raíz Otras opciones dependen del filesystem particular

5.7 OTRAS UTILIDADES

du: muestra el espacio de disco usado por los ficheros y subdirectorios de un directorio

o Formato:

du [opciones] [directorio]

o Algunas opciones: -a muestra valores para ficheros y directorios (por defecto, solo

muestra directorios) -b, -k tamaños en bytes/KBytes -h salida más legible -s muestra sólo la ocupación total

o Ejemplo: o $ du -sh /home /usr o 1,2G /home o 2,3G /usr

df: muestra el espacio de disco usado y disponible de los sistemas de ficheros montados

Page 92: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

92

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

o Formato:

df [opciones]

o Algunas opciones: -a muestra todos los filesystems (incluso los de tamaño 0) -h salida más legible -i da información sobre los inodos -l sólo muestra filesystems locales -T muestra el tipo de sistema de ficheros

o Ejemplo: o $ df -h o Filesystem Tamaño Usado Disp Uso% Montado en o /dev/hda1 67M 50M 13M 80% / o tmpfs 63M 0 63M 0% /dev/shm o /dev/hda9 272M 8,1M 250M 4% /home o /dev/hda8 23M 1,1M 20M 5% /tmp o /dev/hda5 464M 90M 350M 21% /usr o /dev/hda6 74M 44M 27M 63% /var

5.8 PERMISOS EN LINUX

El sistema de permisos en Linux se basa en un esquema de usuarios/grupos que lo convierte en la base principal de la seguridad en Linux, a estos usuarios y grupos se les asignan distintos derechos sobre los archivos y directorios.

Esta es una de las características que ayudan a que Linux sea casi inmune a los Virus de computadora, los virus deben ser capaces de escribir sobre un archivo para poder infectarlo y ejecutarse de alguna manera para poder infectar mas archivos, con el sistema de permisos de Linux los virus no pueden copiarse a cualquier archivo, si el usuario carece de permisos el virus no podrá infectar más archivos y por lo tanto no podrá reproducirse.

Todos los archivos y directorios en Linux tienen permisos que verifican quien puede hacer o no alguna acción con él.

Cuales son los permisos

Los permisos propiamente dichos son tres:

r: read (lectura): Cuando el permiso de lectura está activo sobre un directorio significa que se podrá listar los recursos almacenados en él, si está asignado a un archivo se podrá leer su contenido.

w: write (escritura): Cuando el permiso de escritura está activo sobre un directorio significa que se podrá crear y borrar archivos en su interior, si esta activado para un archivo significa que se podrá modificar su contenido.

x: execute (ejecución): Si el permiso de ejecución está activo sobre un directorio significa que el usuario podrá realizar otras funciones dentro de él mediante los otros permisos de lectura y escritura, y si está activo sobre un archivo se podrá ejecutarlo desde la línea de comandos.

Page 93: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 93

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Y donde están los permisos?

Para poder ver los permisos de los archivos y directorios es necesario ejecutar el siguiente comando:

$ ls –l

Este comando nos dará una salida similar a la siguiente:

Ahora describamos la salida que hemos obtenido:

Con la siguiente línea interpretamos la información así:

- rw- r-- r-- 1 raul raul 594 2005-09-13 13:13 foto1.png ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ 1 2 3 4 5 6 7 8 9 10 11

1 : Tipo de archivo = es un archivo regular 2 : Permisos = los permisos para el propietario son de lectura y escritura 3 : Permisos = el grupo tiene permiso de sólo lectura 4 : Permisos = los otros usuarios tienen el permiso de sólo lectura 5 : Enlace Físico = tiene un enlace físico 6 : Propietario = el usuario raul es el propietario de este archivo

Page 94: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

94

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

7 : Grupo = este archivo pertenece al grupo raul 8 : Tamaño = su tamaño es de 246417 bytes 9 : Fecha = fue creado el 03 de marzo de 2005 10 : Hora = a 13:13 horas 11 : Nombre = el archivo se llama foto1.png

Como habrás apreciado los permisos están asignados en grupos de 3 (rwx) y corresponde al: propietario (owner: dueño del archivo o directorio), grupo (group: grupo del archivo o directorio) y otros (others: otro usuario diferente del propietario).

En la siguiente imagen resaltamos nuevamente la ubicación de los permisos en caso no lo hayamos notado:

5.9 COMANDOS RELACIONADOS

Linux dispone de 3 comandos que permite cambiar los permisos, el propietario y el grupo de un archivo y/o directorio respectivamente:

Comando chmod : se utiliza para cambiar los permisos del archivo o directorio $ chmod [permisos] [archivo/directorio] [opciones]

Comando chown : se utiliza para cambiar el propietario del archivo o directorio # chown [nuevo usuario propietario] [archivo/directorio] [opciones]

Comando chgrp : utilizado para cambiar el grupo del archivo o directorio # chgrp [nuevo grupo] [archivo/directorio] [opciones]

¿COMO SE CAMBIAN LOS PERMISOS?

Para cambiar los permisos se puede hacer de 2 maneras:

1. Utilizando taquigrafía basada en caracteres, o 2. Utilizando números.

Page 95: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 95

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

5.9.1. Cambio de permisos utilizando taquigrafía de caracteres

Para poder utilizar la taquigrafía basada en caracteres tomemos en cuenta la siguiente lista con su respectiva correspondencia:

Símbolo Descripción

Identidades

u Es el usuario propietario del archivo o directorio

g Es el grupo al que pertenece el archivo o directorio

o Otros usuarios, el resto del mundo, ni el propietario ni su grupo

a Todo el mundo – propietario, grupo y otros

Permisos

r Acceso de lectura

w Acceso de escritura

x Acceso de ejecución

Acciones

+ Añade los permisos

- Elimina los permisos

= el único permiso

Vamos a practicar con el comando chmod, para ello lo primero que haremos será crear el archivo foto1.png para ver los cambios de permisos, así que les recomiendo seguir la secuencia:

Ejemplo Descripción

Resultado

$ touch foto1.png creamos el archivo foto1.png foto1.png

$ chmod a-rwx foto1.png

quitamos todos los permisos al archivo foto1.png ---------

$ chmod u+rwx foto1.png

añadimos todos los permisos para el propietario rwx------

$ chmod g+x foto1.png

añadimos el permiso de ejecución para el grupo rwx—x---

$ chmod o+r foto1.png

añadimos el permiso de lectura para los otros usuarios rwx—xr--

$ chmod u-rw foto1.png

eliminamos los permisos de lectura y escritura para el propietario

--x—xr--

$ chmod a=r foto1.png

establecemos como unico permiso de lectura para los 3 grupos

r—r—r--

$ chmod a=rx foto1.png

establecemos los permisos de lectura y ejecución para los 3 grupos

r-xr-xr-x

$ chmod a=- quitamos todos los permisos ----------

Page 96: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

96

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

foto1.png

$ chmod u+rx,o+x foto1.png

añadimos los permisos de lectura y ejecución al propietario y ejecución a otros

r-x-----x

$ chmod g+rx,o-x foto1.png

añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros

r-xr-x---

$ chmod ug+wx,o-x foto1.png

añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de ejecución

a otros rwxrwx---

$ chmod a=rw foto1.png

permite a cualquiera modificar el contenido e incluso eliminar el archivo

rw-rw-rw-

Si cambiamos los permisos a un directorio y deseamos que estos permisos tengan efecto sobre todos sus subdirectorios y archivos sólo deberemos añadir la opción –R. Ejemplo:

$ chmod a=rw DIRECTORIO –R

5.9.2 Cambio de permisos utilizando números

Cada permiso tienen asignado un valor, incluso cuando el permiso no está activo. Para poder utilizar los números tendremos que tener en cuenta la siguiente tabla con sus respectivos valores:

r = 4 (lectura) w = 2 (escritura) x = 1 (ejecucion) - = 0 (sin permisos)

Cuando asignamos los permisos utilizando números debemos tener en cuenta que primero se sumarán los valores y dicho resultado será el que se coloque, aquí una tabla que muestra dichos valores:

Valor Permisos Descripción

0 --- El valor cero significa que no se han asignado permisos

1 --x sólo se ha asignado el de ejecución

2 -w- sólo permiso de escritura

3 -wx permisos de escritura y ejecución

4 r-- sólo permiso de lectura

5 r-x permisos de lectura y ejecución

6 rw- permisos de lectura y escritura

7 rwx permisos: lectura, escritura y ejecución

Los permisos por números se asignan en grupos de 3, es decir, para el propietario-grupo-otros, no es factible asignar solo para uno o dos de ellos.

Page 97: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 97

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Ejemplos:

rw------- (600) — Sólo el propietario tiene el derecho de leer y escribir. rw-r--r-- (644) — Sólo el propietario tiene los permisos de leer y escribir; el grupo y

los demás sólo pueden leer. rwx------ (700) — Sólo el propietario tiene los derechos de leer, escribir y ejecutar el

archivo. rwxr-xr-x (755) — El propietario tiene los derechos de leer, escribir y ejecutar; el

grupo y los demás sólo pueden leer y ejecutar. rwx--x--x (711) — El propietario tiene los derechos de lectura, escritura y ejecución;

el grupo y los demás sólo pueden ejecutar. rw-rw-rw- (666) — Todo el mundo puede leer y escribir en el archivo. ¡No es una

buena elección! rwxrwxrwx (777) — Todo el mundo puede leer, escribir y ejecutar. ¡Tampoco es

buena elección!

Utilizaremos el mismo ejercicio anterior para poder practicar con los permisos utilizando números, el único cambio que haremos será utilizar otro archivo llamado foto2.png:

Ejemplo Descripción Resultado

$ touch foto2.png creamos el archivo foto2.png foto2.png

$ chmod 000 foto2.png

quitamos todos los permisos al archivo foto2.png ----------

$ chmod 700 foto2.png

añadimos todos los permisos para el propietario -rwx------

$ chmod 710 foto2.png

añadimos el permiso de ejecución para el grupo -rwx—x---

$ chmod 714 foto2.png

añadimos el permiso de lectura para los otros usuarios -rwx—xr--

$ chmod 114 foto2.png

eliminamos los permisos de lectura y escritura para el propietario

---x—xr--

$ chmod 444 foto2.png

establecemos como unico permiso de lectura para los 3 grupos

-r—r—r--

$ chmod 555 foto2.png

establecemos los permisos de lectura y ejecución para los 3 grupos

-r-xr-xr-x

$ chmod 000 foto2.png

quitamos todos los permisos -----------

$ chmod 501 foto2.png

añadimos los permisos de lectura y ejecución al propietario y ejecución a otros

-r-x-----x

$ chmod 550 foto2.png

añadimos permiso de lectura y ejecución al grupo y eliminamos permiso de ejecución a otros

-r-xr-x---

$ chmod 770 foto2.png

añadimos permiso de escritura y ejecución al propietario y grupo, y eliminamos permiso de ejecución

a otros -rwxrwx---

$ chmod 666 foto2.png

permite a cualquiera modificar el contenido e incluso eliminar el archivo

-rw-rw-rw-

Page 98: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

98

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

CAMBIANDO PROPIETARIOS Y GRUPOS

Otra de los puntos a la hora de establecer permisos es la necesidad de poder cambiar el propietario y grupo del archivo o directorio, para hacer esta operación debe estar como root y los usuarios y grupos que utilizará deben haber sido creados previamente.

Cambiando el propietario

Utilizamos el comando chown explicado líneas arriba:

# chown clases foto1.png # estamos cambiando el propietario del archivo, ahora el usuario clases será el propietario del archivo foto1.png

# chown raul foto2.png # el usuario raul será el propietario del archivo foto2.png

Si vamos a cambiar el propietario de un directorio y con todos sus subdirectorios y archivos en forma recursiva utilizaremos la opción –R:

# chown clases datos/ –R # el usuario clases sera el nuevo propietario de todos los archivos y subdirectorios que estén dentro del directorio datos/

Cambiando el grupo

Utilizamos el comando chgrp explicado líneas arriba:

# chgrp clases foto1.png # estamos cambiando el propietario del archivo, ahora el archivo foto1.png será del grupo clases

# chgrp raul foto2.png # el archivo foto2.png será del grupo raul

Si vamos a cambiar el grupo de un directorio y con todos sus subdirectorios y archivos en forma recursiva utilizaremos la opción –R:

# chgrp clases datos/ –R # todos los archivos y sub directorios del directorio datos/ serán del grupo clases

Page 99: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 99

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Autoevaluación

1. ¿Cuál es el comando que se usa para crear un filesystem?

(a) fsck

(b) mkfs

(c) fdisk

(d) chmod

2. ¿Cuál es el comando que te permite reparar una particion?

(a) mkfs

(b) mount

(c) fdisk

(d) fsck

3. ¿Cuál es el comando que permite el cambio de permisos?

(a) who

(b) lastlog

(c) chmod

(d) chown

4. ¿Para lograr el permiso rwxr-xr-x, es necesario el valor?

(a) 777

(b) 644

(c) 755

(d) 744

Page 100: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

100

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 101: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 101

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

INSTALACIÓN DE

APLICACIONES LINUX

TEMA

Describir las distintas formas de instalar aplicaciones en Linux

OBJETIVOS ESPECÍFICOS

Comprender el uso de RPMs

Entender como instalar aplicaciones compilándolas

Instalacion de paquetes via yum

CONTENIDOS

Introducción a RPM

Manejo de RPM

Construyendo un RPM

Compilacion de aplicación en Linux

UNIDAD

6

Page 102: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

102

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 103: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 103

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

6.1 RPM (RedHat Package Manager)

RPM es el gestor de paquetes de Red Hat (Red Hat Package Manager). Aunque aparece Red Hat en su nombre, la intención es que sea un sistema de empaquetado abierto y disponible para el uso de cualquiera. Permite a los usuarios tomar el código fuente (source code) y empaquetarlo en forma de fuentes y binaria de forma que los ficheros binarios sean fácilmente instalables y rastreables y los fuentes puedan ser reconstruidas con facilidad. También gestiona una base de datos de todos los paquetes y sus ficheros que puede ser usada para verificar paquetes e interrogarla para obtener información acerca de ficheros y/o paquetes.

6.1.1. VISIÓN GENERAL

Con RPP (EL anterior sistema de empaquetado del cual RPM no deriva en absoluto), los paquetes de fuentes debían ser ``hackeados N.T.: retocados '' para poder construir las aplicaciones desde ellos. Teóricamente, se podía instalar un paquete fuente RPP y efectuarle un make sin problemas. Pero los fuentes no eran las originales, y no había referencia alguna a los cambios que se habia hecho para que pudieran compilar. Se hacía pues necesario bajarse los fuentes originales de forma separada.

Con RPM, tiene los fuentes originales junto al ``parche N.T.: patch en el original '' que hemos usado para poder compilarlo. Vemos en esto una gran ventaja. ¿Por qué? Son varias las razones. La primera es que si sale disponible una nueva versión de un programa, usted no necesita empezar desde la nada para conseguir que compile bajo RHL. Puede examinar el parche para saber qué podría necesitar hacer. De esta manera toda la configuración por defecto de compilación queda fácilmente a la vista.

RPM también está diseñado para disponer de potentes parámetros de consulta. Usted puede hacer búsquedas de paquetes a lo largo de toda la base de datos o sólo de ciertos ficheros. También puede encontrar fácilmente a qué paquete pertenece un fichero y de dónde proviene. Los ficheros RPM en sí mismos son archivos comprimidos, pero puede consultar paquetes independientes fácil y rápidamente, gracias a una cabecera binaria a

Page 104: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

104

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

medida añadida al paquete con toda la información que puede necesitar, almacenada sin

comprimir. Esto permite consultas rápidas.

Otra poderosa característica es la habilidad de verificar paquetes. Si está preocupado por haber borrado algún fichero importante, sólo tiene que verificar el paquete. Quedará cumplidamente informado de cualquier anomalía. Llegados a ese punto, podrá reinstalar el paquete si lo considera necesario. Cualquier fichero de configuración que se tenga quedará a salvo.

6.1.2 INFORMACIÓN GENERAL

6.1.2.1 Adquirir RPM

La mejor forma de conseguir RPM es instalando Red Hat Commercial Linux,CentOS, etc. Si no quiere hacer eso, puede seguir usando RPM. Puede conseguirse en:

ftp://ftp.redhat.com/pub/redhat/code/rpm

http://rpm.pbone.net

http://www.rpmfind.net/

6.1.2.2. Requerimientos de RPM

El principal requerimiento para ejecutar RPM es cpio 2.4.2 o superior. Aunque el sistema fue ideado para ser usado con Linux, puede ser perfectamente portado a cualquier sistema Unix. De hecho, ha sido compilado en SunOS, Solaris, AIX, Irix, AmigaOS, y otros. Queda advertido que los paquetes binarios generados en diferentes tipos de sistemas Unix no serán compatibles.

Estos son los mínimos requerimientos para instalar RPMs. Para construir RPMs a partir de las fuentes, necesitará todo lo normalmente requerido para construir un paquete, cosas como gcc, make, etc.

6.2. USANDO RPM

En su forma más simple, RPM puede usarse para instalar paquetes:

Page 105: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 105

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

El siguiente comando más simple es desinstalar un paquete:

Uno de los más complejos pero más útiles comandos le permiten instalar paquetes a través de FTP. Si está conectado a la Red y quiere instalar un nuevo paquete, todo lo que necesita hacer es especificar el fichero con un URL válido, como esto:

Apercíbase de que ahora RPM puede hacer consultas y/o instalaciones a través de FTP.

Aunque estos son comandos simples, rpm puede usarse de multitud de formas, como puede verse en el mensaje de Ayuda:

Page 106: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

106

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Podrá encontrar más detalles acerca de la función de estos parametros en la página del manual de RPM.

6.3. MANEJO DE RPM

RPM es una herramienta potentísima y, como puede ver, dispone de varios parámetros. La mejor forma de apercibirse de ellas es examinando unos cuantos ejemplos. Antes mostramos una instalación/desinstalación sencilla, ahora van unos cuantos más:

Supongamos que ha borrado unos cuantos ficheros por accidente, pero no está seguro de qué es lo que ha borrado. Si quiere verificar completamente su sistema y ver qué se ha perdido, puede hacer:

Page 107: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 107

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Supongamos que se encuentra con un fichero que no reconoce. Para saber a qué paquete pertenece puede hacer:

Supongamos que acaba de hacerse con un nuevo paquete RPM de koules, pero no sabe qué puede ser. Para obtener información al respecto:

rpm -qpi koules-1.2-2.i386.rpm

La salida podría ser:

Name : koules Distribution: Red Hat Linux Colgate Version : 1.2 Vendor: Red Hat Software Release : 2 Build Date: Mon Sep 02 11:59:12 1996 Install date: (none) Build Host: porky.redhat.com Group : Games Source RPM: koules-1.2-2.src.rpm Size : 614939 Summary : SVGAlib action game with multiplayer, network, and sound support Description : This arcade-style game is novel in conception and excellent in execution. No shooting, no blood, no guts, no gore. The play is simple, but you still must develop skill to play. This version uses SVGAlib to run on a graphics console.

Ahora quiere saber qué ficheros instala el paquete RPM. Puede hacer: rpm -qpl koules-1.2-2.i386.rpm

La salida es:

/usr/doc/koules /usr/doc/koules/ANNOUNCE /usr/doc/koules/BUGS /usr/doc/koules/COMPILE.OS2 /usr/doc/koules/COPYING

Page 108: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

108

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

/usr/doc/koules/Card /usr/doc/koules/ChangeLog /usr/doc/koules/INSTALLATION /usr/doc/koules/Icon.xpm /usr/doc/koules/Icon2.xpm /usr/doc/koules/Koules.FAQ /usr/doc/koules/Koules.xpm /usr/doc/koules/README /usr/doc/koules/TODO /usr/games/koules /usr/games/koules.svga /usr/games/koules.tcl /usr/man/man6/koules.svga.6

Estos son sólo unos pocos ejemplos. Otros, aún más creativos, podrá hacerlos fácilmente una vez que se haya familiarizado con RPM.

6.4. COMPILAR APLICACIONES EN LINUX El proceso de compilar un programa e instalarlo desde la consola suele ser una tarea bastante rutinaria, ya que, salvo raras excepciones, siempre se procede de la misma manera, y solo son necesarias tres órdenes.

Se debe tener correctamente instalado y configurado nuestro compilador C/C++ (gcc) y todas las bibliotecas necesarias (que, por lo general, es algo de lo que se encarga el programa de instalación de nuestra distribución), daremos por hecho que todo está dispuesto en nuestro sistema para poder compilar programas de forma correcta.

El primer paso suele ser descomprimir el archivo comprimido que nos hemos bajado de Internet (casi siempre con la extensión .tar.gz, lo que se conoce con el nombre de tarball, aunque puede estar en otros formatos). Abrimos una consola de comandos, y nos dirigimos hacia el directorio donde se encuentra el archivo (tenemos que tener permiso de lectura y escritura en ese directorio), tecleamos la siguiente orden:

tar -xvzf nombredelprograma.tar.gz

Comprobamos que se creo un directorio con el nombre del archivo y cambiamos a ese directorio tecleando la orden:

cd nombredelprograma

Observación En este momento sería recomendable leer la documentación que acompaña al programa, que normalmente está contenida en un archivo con el nombre README. También es recomendable leer el archivo INSTALL, si existe, ya que en él se describe la forma de instalar el programa. Ambos archivos suelen estar escritos en inglés, y contienen una referencia de las dependencias especiales que necesita el programa para poder ser compilado y la forma de instalarlo.

Page 109: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 109

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Este último paso es muy recomendable, pues cabe la posibilidad de que el programa se instale de otra forma diferente a la que se detalla acá. A continuación deberemos configurar los archivos que nos permitirán compilar el programa. Como norma general, deberíamos instalar nuestros programas en el directorio /usr/local/bin, ya que ésta es la forma más adecuada de asegurarnos que podremos acceder a ellos localmente y en todo momento, ya que los otros directorios que suelen contener programas ejecutables (como /bin y /sbin) pueden no estar disponibles localmente, sino en algún lugar remoto de la red local, en caso de que estemos en una. Si se usa ese directorio, el programa será accesible por todos los usuarios de nuestro sistema, pero habremos de tener permisos de superusuario para instalar allí nuestra aplicación. En caso contrario, siempre nos queda la posibilidad de instalarlo en nuestro directorio personal (por ejemplo, en /home/usuario/bin), aunque en este caso sólo nosotros podremos acceder a él. Si optamos por instalar el programa en el directorio /usr/local/bin, deberemos configurarlo mediante la orden:

./configure --prefix=/usr/local

Observación Hay que tener cuidado con el paso anterior, ya que, de lo contrario, es posible que nuestro programa vaya a parar a algún directorio no incluido en nuestro PATH, por lo que no se podría ejecutar. También es necesario aclarar que la mayoría de los programas ya tienen configurada una ruta de instalación de forma predeterminada, como los programas diseñados para el escritorio KDE, que suelen detectar la ruta en la que reside el resto de programas de dicho escritorio para instalarse en el mismo lugar que ellos. Así, la orden ./configure se suele ejecutar casi siempre sin ningún parámetro adicional. Tras ejecutar ./configure veremos desfilar una larga sucesión de mensajes por la consola y, si nuestro sistema dispone de todo lo necesario para llevar a cabo la compilación de forma satisfactoria, se nos informará en el último mensaje mostrado. En el caso de que se produzca algún error, deberemos prestar atención a los últimos mensajes mostrados para tratar de solucionar el problema que se haya detectado en nuestro sistema. Si todo fue bien, ya podemos pasar a compilar nuestra aplicación con la orden:

Make Dependiendo de la complejidad de la aplicación y del número de archivos de código fuente que la compongan (y, sobre todo, de la velocidad de nuestro procesador y del rendimiento de nuestro sistema), el proceso puede durar desde pocos segundos hasta varias horas. Durante todo este tiempo, la consola irá mostrando todo lo que se está haciendo, y tal vez se muestren algunos mensajes de aviso o de error. En este último caso, la compilación se detendrá y deberemos tratar de solucionar los problemas que originaron el error, en caso de que sepamos cómo hacerlo (ya que suelen ser necesarios conocimientos de C/C++). Pero lo normal es que no ocurra ningún error durante la compilación, ya que todo suele estar probado por el autor del programa.

Una vez compilada nuestra aplicación deberemos instalarla en el directorio que seleccionamos anteriormente como destino final. Si no tenemos permisos de lectura y

Page 110: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

110

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

escritura sobre ese directorio, deberemos autentificarnos primero como superusuario (usuario root) con la orden:

Su Y, finalmente, instalaremos la aplicación con el comando:

make install Si todo fue bien y no ocurrió ningún error, nuestra aplicación ya estará lista para ser usada (y, al contrario que en los entornos Windows, no será necesario tener que reiniciar el sistema). Dependiendo del script de instalación, es posible que se haya creado alguna entrada en el menú de nuestro escritorio y/o en el propio escritorio, aunque ninguna de estas opciones suele ser habitual. Lo más seguro es que tengamos que crear esas entradas nosotros mismos de forma manual. Si el directorio de destino de nuestra aplicación está incluido en nuestro PATH, podremos ejecutar la aplicación directamente desde la consola tecleando su nombre. Lo más usual es que tanto el directorio /usr/local/bin como el /home/usuario/bin estén ya incluidos en nuestro PATH personal.

Un poco de limpieza

Durante la compilación de un programa se genera un buen número de archivos adicionales en el directorio en el que fue descomprimido. Normalmente, esos archivos no se necesitan para nada (a menos que pensemos modificar el código fuente del programa y volver a compilarlo), por lo que es recomendable eliminarlos para ahorrar espacio en nuestro disco duro. Para ello, tras la instalación podemos ejecutar la orden:

make clean

Desinstalar un programa compilado Si lo que queremos es desinstalar un programa compilado a partir del código fuente, cambiamos en la consola al directorio en el que fue descomprimido, compilado e instalado, nos autentificamos como usuario root, y a continuación ejecutamos la orden:

make uninstall

Después de la desinstalación podemos eliminar el directorio donde fue descomprimido el programa si no pensamos volver a utilizarlo.

Page 111: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 111

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Resumen

Como compilar un programa en Linux desde su código fuente, se seguirán los siguientes pasos:

tar –xvzf aplicación-a-instalar.tar.gz

cd aplicación-a-instalar

./configure

make

make install

make clean

INSTALACIÓN DE APLICACIONES VIA YUM

Al instalar una nueva aplicación o programa con cualquiera de los métodos anteriores, podriamos tener algunos problemas de dependencias que algunas veces nos puede dar mas de un dolor de cabeza, existe un método de instalación y actualización de paquetes que nos cubre con esa necesidad, ese método es la instalación de paquetes via yum.

Yum es un programa automático para instalar / desinstalar los RPM del sistema. Obtiene automáticamente dependencias y nos permite instalar correctamente los paquetes.

Procedimientos

Con yum podemos realizar las siguientes tareas frecuentes:

6.5 Actualizar sistema.

Actualización del sistema con todas las dependencias que sean necesarias:

Page 112: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

112

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

6.6 Búsquedas

Realizar una búsqueda de algún paquete o término en la base de datos en alguno de los depósitos yum configurados en el sistema:

yum search cualquier-paquete

Ejemplo:

6.7 Consulta de información

Consultar la información contenida en un paquete en particular::

yum info cualquier-paquete

Page 113: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 113

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Ejemplo:

6.8 Instalación de paquetes

Instalación de paquetería con resolución automática de dependencias:

yum install cualquier-paquete

Ejemplo:

Page 114: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

114

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

6.9 Desinstalación de paquetes

Desinstalación de paquetes junto con todo aquello que dependa de éstos:

yum remove cualquier-paquete

Ejemplo:

6.10 Listado de paquetes.

Lo siguiente listará todos los paquetes disponibles en la base de datos yum y que pueden instalarse:

yum list available | less

Lo siguiente listará todos los paquetes instalados en el sistema:

yum list installed |less

Lo siguiente listará todos los paquetes instalados en el sistema y que pueden (deben) actualizarse:

yum list updates | less

6.11 Limpieza del sistema.

Yum deja como resultado de su uso cabeceras y paquetes RPM almacenados en el interior del directorio localizado en la ruta /var/cache/yum/. Particularmente los paquetes RPM que se han instalado pueden ocupar mucho espacio y es por tal motivo conviene eliminarlos una vez que ya no tienen utilidad. Igualmente conviene hacer lo mismo con las cabeceras viejas de paquetes que ya no se encuentran en la base de datos. A fin de realizar la limpieza correspondiente, puede ejecutarse lo siguiente:

yum clean all

Page 115: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 115

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Autoevaluación

1. ¿Qué es el RPM?

2. ¿Si se desa consulta la información del paquete algo.rpm, se usa?

(a) rpm –i algo.rpm

(b) rpm –Uvh algo.rpm

(c) rpm –qf algo.rpm

(d) rpm –qp algo.rpm

3. ¿Cuáles son los pasoa para instalar una aplicación desde su código fuente?

4. ¿Qué te permite hacer yum?

Page 116: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

116

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 117: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 117

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

ANÁLISIS DE ARCHIVOS DE

REGISTRO Y CUOTAS DE DISCO

Tema Describir y entender el uso de los archivos de registro del sistema Linux

Describir y entender el uso de cuotas de disco en Linux

Objetivos específicos

Comprender el funcionamiento de los logs en Linux

Comprender e implementar las cuotas de disco Contenidos

Archivos de registro

Ubicación

Visualización de los archivos de registro

El daemon SYSLOG

Cuotas de disco

UNIDAD

9

Page 118: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

118

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 119: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 119

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

9.1 ARCHIVOS DE REGISTRO

Los Archivos de registro (o archivos de log) son archivos que contienen mensajes sobre el sistema, incluyendo el kernel, los servicios y las aplicaciones que se ejecutan en dicho sistema. Existen diferentes tipos de archivos de log dependiendo de la información. Por ejemplo, existe un archivo de log del sistema, un archivo de log para los mensajes de seguridad y un archivo de log para las tareas cron.

Los archivos de registro pueden ser muy útiles cuando se trate de resolver un problema con el sistema tal como cuando se trata de cargar un controlador del kernel o cuando se este buscando por intentos no autorizados de conexión al sistema. Este capítulo discute donde encontrar estos archivos de registro, cómo visualizarlos y qué buscar en ellos.

Algunos archivos de log están controlados por un demonio llamado syslogd. Encontrará una lista de mensajes de log mantenidos por syslogd en el archivo de configuración /etc/syslog.conf.

9.2 UBICACIÓN DE LOS ARCHIVOS DE REGISTRO

La mayoría de archivos de log están localizados en el directorio /var/log. Algunas aplicaciones como por ejemplo httpd y samba poseen un directorio en /var/log para sus archivos de log.

Observe los múltiples archivos en el directorio de archivos log seguidos de números. Estos se crean cuando los archivos de log circulan. Los archivos de log circulan de manera que los tamaños de los archivos no sean demasiado amplios. El paquete logrotate contiene una tarea de cron que hace circular automáticamente los archivos de log al archivo de configuración /etc/logrotate.conf y los archivos de configuración en el directorio /etc/logrotate.d. Por defecto, se configura para circular cada semana y mantener la validez de los archivos previos de log durante cuatro semanas.

Page 120: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

120

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

9.3 VISUALIZACIÓN DE LOS ARCHIVOS DE REGISTRO

La mayoría de los archivos de registro están en formato de texto plano. Puede visualizarlos con cualquier editor de texto tal como Vi o Emacs. Algunos archivos log pueden ser leídos por todos los usuarios del sistema; sin embargo se requiere de privilegios como root para visualizar la mayoría de ellos. Para poder visualizarlos en tiempo real puede usar el comando tail.

También puede utilizar el Visor de registro del sistema. Para iniciar la aplicación, hacer clic en Sistema del panel superiorAdministraciónRegistro de actividad del sistema, o digite el comando gnome-system-log en una consola.

Page 121: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 121

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

9.4 DEMONIO SYSLOGD

Todos los archivos de registro que se llevan a cabo en un sistema Linux se manejan por el demonio syslogd y su archivo de configuración /etc/syslog.conf. El archivo de configuración especifica sobre qué subsistemas se deben grabar los mensajes (por ejemplo cron, daemon, mail, etc.), qué niveles de mensajes registrar (por ejemplo debug, info, warn, etc) y qué hacer con esos mensajes (añadirlo a un archivo de registro, enviarlo a la impresora, etc.).

Syslog permite también el registro remoto; guardando tus archivos de registro en otros equipos de la red. La ventaja de esto es que si tu sistema queda comprometido por alguien serán incapaces de borrar sus pasos de tus archivos de registro haciendo mas sencillo el buscar su origen y las acciones que llevaron a cabo.

Podemos ver que cada regla del archivo tiene dos campos: un campo de selección y un campo de acción, separados ambos por espacios o tabuladores. El campo de selección está compuesto a su vez de dos partes separadas por un punto: una que indica el servicio que envía el mensaje y otra que marca su prioridad, separadas por un punto (“.”); ambas son indiferentes a mayúsculas y minúsculas.

La parte del servicio contiene una de las siguientes palabras clave: auth, auth-priv, cron, daemon, kern, lpr, mail, mark, news, security (equivalente a auth), syslog, user, uucp y local0 hasta local7; esta parte especifica el ‘subsistema' que ha generado ese mensaje (por ejemplo, todos los programas relacionados con el correo generarán mensajes ligados al servicio mail).

En segundo lugar, la prioridad está compuesta de uno de los siguientes términos, en orden ascendente: debug, info, notice, warning, warn (equivalente a warning), err, error (equivalente a err), crit, alert, emerg, y panic (equivalente a emerg). La prioridad

Page 122: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

122

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

define la gravedad o importancia del mensaje almacenado. Todos los mensajes de la prioridad especificada y superiores son almacenados de acuerdo con la acción requerida.

La segunda parte de cada línea del archivo de configuración de syslogd es el campo de acción, y describe el destino de los mensajes (dónde se van a guardar o qué programa los va a procesar); este destino puede ser uno de los siguientes:

Un archivo plano: Normalmente los mensajes del sistema son almacenados en archivos planos. Dichos archivos han de estar especificados con la ruta de acceso completa (comenzando con ‘ / ').

Podemos preceder cada entrada con el signo menos, ‘ – ‘, para omitir la sincronización del archivo (vaciado del buffer de memoria a disco). Aunque puede ocurrir que se pierda información si el sistema cae justo después de un intento de escritura en el archivo, utilizando este signo se puede conseguir una mejora importante en la velocidad, especialmente si estamos ejecutando programas que mandan muchos mensajes al demonio syslogd.

# Guardamos todos los mensajes de prioridad crítica en

"critical"

#

*.=crit /var/adm/critical

Un dispositivo físico: También tenemos la posibilidad de enviar los registros del sistema a un dispositivo físico del mismo, típicamente un terminal o una impresora. Así conseguimos, entre otras cosas, que esas entradas permanezcan relativa o totalmente inalteradas (en función de qué dispositivo las reciban). Por ejemplo, podemos tener uno de los terminales virtuales que muchos sistemas Unix ofrecen en su consola dedicado a listar los mensajes del sistema, que podrán ser consultados con solo cambiar a ese terminal mediante la combinación de teclas correspondiente:

# Enviamos todos los mensajes a tty12 (ALT+F12 en Linux) y

todos

# los mensajes criticos del nucleo a consola

#

*.* /dev/tty12

kern.crit /dev/console

Una tubería con nombre: Algunas versiones de syslogd permiten enviar registros a ficheros de tipo pipe simplemente anteponiendo el símbolo ‘ | ‘ al nombre del archivo; dicho archivo ha de ser creado antes de iniciar el demonio syslogd, mediante comandos como mkfifo o mknod. Esto es útil para debug y también para procesar los registros utilizando cualquier aplicación de Unix, tal y como veremos al hablar de logs remotos cifrados.

Por ejemplo, la siguiente línea de /etc/syslog.conf enviaría todos los mensajes de cualquier prioridad a uno de estos archivos denominado /var/log/mififo:

# Enviamos todos los mensajes a la tubería con nombre

# /var/log/mififo

#

*.* |/var/log/mififo

Page 123: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 123

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Una máquina remota: Se pueden enviar los mensajes del sistema a otra máquina, de manera a que sean almacenados remotamente, sin más que indicar en el campo de acción el nombre o dirección de dicho sistema precedido por el signo ‘ @ '. Esto es útil si tenemos una máquina segura, en la que podemos confiar, conectada a la red, ya que de esta manera se guardaría allí una copia de los mensajes de nuestro sistema, copia que no podría ser modificada en caso de que alguien entrase en la máquina que los está generando. Esto es especialmente interesante para detectar usuarios ocultos en nuestro sistema (usuarios maliciosos que han conseguido los suficientes privilegios para ocultar sus procesos o su conexión), ya que una de las principales cosas que hará este tipo de atacantes es eliminar cualquier registro que denote su presencia en la máquina (por ejemplo, sus entradas en wtmp).

En el siguiente ejemplo utilizamos un sistema a priori confiable para enviarle algunos de nuestros registros:

# Enviamos los mensajes de prioridad warning y superiores al

# fichero "syslog" y todos los mensajes (incluidos los

# anteriores) a la maquina "secure.upv.es"

#

*.warn /usr/adm/syslog

*.* @secure.upv.es

Unos usuarios del sistema (si están conectados): Se especifica la lista de usuarios que deben recibir un tipo de mensajes simplemente escribiendo sus login, separados por comas:

# Enviamos los mensajes con la prioridad "alert" a root y

toni

#

*.alert root, toni

Todos los usuarios que estén conectados: Los errores con una prioridad de emergencia se suelen enviar a todos los usuarios que estén conectados al sistema, de manera que se den cuenta de que algo va mal; para ello utilizamos un asterisco en el campo de acción:

# Mostramos los mensajes urgentes a todos los usuarios

# conectados, mediante wall

*.=emerg *

9.5 QUOTAS DE DISCO EN LINUX

Debe iniciarse el sistema en nivel de corrida 1 (mono usuario), ya que se requiere no haya procesos activos utilizando contenido de la partición a la cual se le aplicará la cuota de disco.

Obviamente, durante la instalación, debió asignarse una partición dedicada para, por mencionar un ejemplo, los directorios /var y /home.

Con la finalidad de añadir el soporte para cuotas en las particiones anteriormente mencionadas, se debe añadir en el fichero /etc/fstab los parámetros usrquota y grpquota a las líneas que definen la configuración de las particiones /var y /home:

Page 124: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

124

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

LABEL=/var /var ext3 defaults,usrquota,grpquota 1 2 LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2

Debe remontar las particiones para que surtan efecto los cambios:

mount -o remount /var mount -o remount /home

Se deben crear los ficheros aquota.user, aquota.group, quota.user y quota.group, los cuales se utilizarán en adelante para almacenar la información y estado de las cuotas en cada partición.

cd /var touch aquota.user aquota.group quota.user quota.group cd /home touch aquota.user aquota.group quota.user quota.group

Ejecutar:

quotacheck -avug

La primera vez que se ejecuta el mandato anterior es normal marque advertencias refiriéndose a posibles ficheros truncados que en realidad no eran otra cosa sino ficheros de texto simple vacíos a los cuales se les acaba de convertir en formato binario. Si se ejecuta de nuevo quotacheck - avug, no deberá mostrar advertencia alguna.

Para activar las cuotas de disco recién configuradas, solo bastará ejecutar:

quotaon /var quotaon /home

Vaya al nivel de corrida 3 a fin de aplicar cuota de disco a algunos usuarios.

init 3

9.5.1 Edquota.

Es importante conocer que significa cada columna mostrada por edquota.

Blocks: Bloques. Corresponde a la cantidad de bloques de 1 Kb que está utilizando el usuario.

Inodes: Inodos. Corresponde al número de ficheros que está utilizando el usuario. Un inodo (también conocido como Index Node) es un apuntador hacia sectores específicos de disco duro en los cuales se encuentra la información de un fichero. Contiene además la información acerca de permisos de acceso así como los usuarios y grupos a los cuales pertenece el fichero.

Page 125: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 125

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Soft: Limite de gracia. Limite de bloques de 1 KB que el usuario puede utilizar y que puede rebasar hasta que sea excedido el periodo de gracia (de modo predeterminado son 7 días).

Hard: Limite absoluto. Limite que no puede ser rebasado por el usuario bajo circunstancia alguna.

Asignar cuotas de disco a cualquier usuario o grupo solo hará falta utilizar edquota citando el nombre del usuario al cual se le quiere aplicar:

edquota fulano

Lo anterior deberá devolver algo como lo siguiente a través de vi u otro editor de texto simple:

Disk quotas for user fulano (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda7 0 0 0 0 0 0 /dev/hda5 24 0 0 10 0 0

9.5.2 Cuota absoluta (Hard)

Suponiendo que se quiere asignar una cuota de disco de 6 MB para el usuario «fulano» en en /dev/hda7 y /dev/hda5, se utilizaría lo siguiente:

Disk quotas for user fulano (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda7 0 0 6144 0 0 0 /dev/hda5 24 0 6144 10 0 0

El usuario siempre podrá rebasar una cuota de gracia pero nunca una cuota absoluta.

9.5.3 Cuota de gracia (Soft)

El sistema tiene de modo predeterminado un periodo de gracia de 7 días que se puede modificar con el mandato edquota -t, donde se puede establecer un nuevo periodo de gracia por días, horas, minutos o segundos.

Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/hdb7 7days 7days /dev/hdb5 7days 7days

La cuota de gracia establece los límites de bloques o inodos que un usuario tiene en una partición. Cuando el usuario excede el límite establecido por la cuota de gracia, el sistema advierte al usuario que se ha excedido la cuota del disco sin embargo permite al usuario

Page 126: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

126

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

continuar escribiendo hasta que trascurre el tiempo establecido por el periodo de gracia, tras el cual al usuario se le impide continuar escribiendo sobre la partición. Suponiendo que quiere asignar una cuota de gracia de 6 MB en /dev/hda7 y /dev/hda5, la cual podrá ser excedida hasta por 7 días, se utilizaría lo siguiente:

Disk quotas for user fulano (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda7 0 6144 0 0 0 0 /dev/hda5 24 6144 0 10 0 0

Aplicando cuotas masivamente.

Si se quiere que todo aplique para los usuarios existentes, a partir de UID 510, por ejemplo, suponiendo que tiene al usuario "pepito" como molde (note por favor el acento grave en el mandato justo antes de awk, no es una comilla ni apostrofe):

edquota -p pepito `awk -F: '$3 > 510 {print $1}' /etc/passwd`

9.6 COMPROBACIONES

Utilice el mandato edquota con el usuario fulano.

edquota fulano

Asigne al usuario «fulano» una cuota de disco de 50 MB en todas las particiones con cuota de disco habilitada:

Disk quotas for user fulano (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda7 0 0 51200 0 0 0 /dev/hda5 24 0 51200 10 0 0

Desde otra terminal acceda hacia el sistema como el usuario fulano y ejecute el mandato quota y observe con detenimiento la salida:

Disk quotas for user fulano (uid 501): Filesystem blocks quota limit grace files quota limit grace /dev/hda7 0 0 51200 1 0 0 /dev/hda5 24 0 51200 10 0 0

Realice una copia del directorio /usr/lib como el subdirectorio ~/prueba-cuotas dentro de su directorio de inicio:

cp -r /usr/lib ~/prueba-cuotas

Notará que llegará un momento en el que el sistema indicará que ya no es posible continuar copiando contenido dentro de ~/prueba-cuotas debido a que se ha agotado el espacio en la partición.

Page 127: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 127

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Utilice de nuevo el mandato quota y observe con detenimiento la salida, en donde aparecerá un asterisco justo junto a la cantidad en la columna de bloques bloques, el cual indica que se ha excedido la cuota del disco:

Disk quotas for user fulano (uid 501): Filesystem blocks quota limit grace files quota limit grace /dev/hda7 0 0 51200 1 0 0 /dev/hda5 51200* 0 51200 7439 0 0

Para poder volver a escribir sobre la partición, es necesario liberar espacio. Elimine por completo el directorio ~/prueba-cuotas y vuelva a utilizar el mandato quota:

rm -fr ~/prueba-cuotas quota

Page 128: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

128

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Autoevaluación

1. ¿Cuál es el nombre del archivo que contiene registrado los mensajes de los servicios

de red?

(a) access.log

(b) syslog

(c) spooler

(d) messages

2. ¿Cuál es el directorio que contiene los archivos logs del sistema?

(a) /var/log/xferlog

(b) /var/log/maillog

(c) /var/log

(d) /var/log/secure

3. ¿Cuál es el comando que informa sobre los últimos logins de los usuarios en el sistema?

(a) who

(b) lastlog

(c) dmesg

(d) syslog

4. ¿Indique ejemplos donde se puede aplicar cuotas de disco?

Page 129: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 129

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

SERVIDOR NFS Y SAMBA

TEMA

Describir la función de los servidores NFS y Samba

OBJETIVOS ESPECÍFICOS

Comprender el funcionamiento del servidor NFS

Comprender el funcionamiento del servidor Samba

CONTENIDOS

Introducción a NFS

Funcionamiento NFS

Configuración del servidor NFS

Configuración del cliente NFS

Introducción a Samba

Configuración de samba cliente

Configuración de samba Servidor

UNIDAD

10

Page 130: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

130

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

10.1 SERVICIO NFS – INTRODUCCIÓN

Un Sistema de archivos de red (NFS) permite a los hosts remotos montar sistemas de archivos sobre la red e interactuar con esos sistemas de archivos como si estuvieran montados localmente. Esto permite a los administradores de sistemas consolidar los recursos en servidores centralizados en la red. Este capítulo se centra en los conceptos fundamentales de NFS e información suplementaria. Para instrucciones específicas con respecto a la configuración y operación del software NFS en servidores o clientes.

10.2 FUNCIONAMIENTO

Hay tres versiones de NFS actualmente en uso. La versión 2 de NFS (NFSv2), es la más antigua y está ampliamente soportada por muchos sistemas operativos. La versión 3 de NFS (NFSv3) tiene más carácterísticas, incluyendo manejo de archivos de tamaño variable y mejores facilidades de informes de errores, pero no es completamente compatible con los clientes NFSv2. NFS versión 4 (NFSv4) incluye seguridad Kerberos, trabaja con cortafuegos, permite ACLs y utiliza operaciones con descripción del estado. Linux soporta clientes tanto NFSv2, NFSv3 como NFSv4, y cuando monta un sistema de archivos a través de NFS, Red Hat Enterprise Linux usa NFSv4 por defecto. Todas las versiones de NFS pueden utilizar el Protocolo de control de transmisiones (TCP) ejecutándose sobre una red IP. En el caso de NFSv4, éste lo requiere. NFSv2 y NFSv3 pueden utilizar el Protocolo de datagrama de usuarios (UDP) sobre una red IP para proporcionar conexiones de red sin supervisión (stateless) entre el cliente y el servidor.

Cuando se utiliza NFSv2 o NFSv3 con UDP, bajo condiciones normales la conexión UDP desatendida minimiza el tráfico de la red, ya que el servidor NFS envia un cookie al cliente después que este tiene acceso al volumen compartido. Esta cookie es un valor aleatorio guardado en el lado del servidor y espasado junto con las peticiones RPC desde el cliente.

Page 131: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 131

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

El servidor NFS puede ser reiniciado sin afectar a los clientes y las cookies permanecen intactas. Sin embargo, debido a que UDP es sin supervisión, si el servidor se cae de forma inesperada, los clientes UDP continúan saturando la red con peticiones para el servidor. Por esta razón, TCP es el protocolo preferido cuando se conecte a un servidor NFS. Cuando se autentifique utilizando NFSv4, se crea una conexión atenta y, de forma opcional, está disponible la autenticación de usuarios y grupos con Kerberos. NFSv4 no tiene interacción con portmapper, rpc.mountd, rpc.lockd y rpc.statd, pues estos han sido incorporados en el kernel. NFSv4 escucha en el puerto TCP 2049. La única vez que NFS lleva a cabo la autentificación es cuando el cliente intenta montar un recurso compartido NFS. Para limitar el acceso al servicio NFS, se utilizan envolturas TCP (TCP wrappers). Los TCP wrappers leen los archivos /etc/hosts.allow y /etc/hosts.deny para determinar si a un cliente particular o red tiene acceso o no al servicio NFS. Después de que al cliente se le permite acceso gracias a un TCP wrapper, el servidor NFS recurre a su archivo de configuración, /etc/exports, para determinar si el cliente tiene suficientes privilegios para acceder a los sistemas de archivos exportados. Una vez otorgado el acceso, todas las operaciones de archivos y de directorios están disponibles para el usuario.

10.3 SERVICIOS REQUERIDOS

Linux utiliza una combinación de soporte a nivel del kernel y procesos demonio para proporcionar los archivos compartidos con NFS. NFSv2 y NFSv3 confía en las Llamadas de procedimientos remotos ((RPC)) para enrutar peticiones entre clientes y servidores. Los servicios RPC bajo Linux son controlados por el servicio portmap. Para compartir o montar sistemas de archivos NFS, los servicios siguientes funcionan juntos, dependiendo de cuál versión de NFS se tenga implementada:

. nfs . Inicia los procesos RPC apropiados para servir peticiones para los sistemas de archivos compartidos NFS. . nfslock.Un servicio opcional que inicia los procesos RPC adecuados para permitir que clientes NFS bloqueen archivos en el servidor. . portmap. El servicio RPC para Linux; responde a las peticiones para servicios RPC y configura las conexiones al servicio RPC solicitado. No se utiliza con NFSv4. Los siguientes procesos RPC facilitan los servicios NFS: . rpc.mountd . Este proceso recibe las peticiones de montaje desde clientes NFS y verifica que el sistema de archivos solicitado esté actualmente exportado. Este proceso es iniciado automáticamente por el servicio nfs y no requiere de la configuración del usuario. No se utiliza con NFSv4. . rpc.nfsd . Este proceso es el servidor NFS. Trabaja con el kernel Linux para satisfacer las demandas dinámicas de clientes NFS, tales como proporcionar hilos del servidor cada vez que se conecta un cliente NFS. Este proceso corresponde al servicio nfs.

Page 132: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

132

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

. rpc.lockd . Un proceso opcional que permite a los clientes NFS bloquear archivos en el servidor. Esto corresponde al servicio nfslock. No se utiliza con NFSv4. . rpc.statd. Este proceso implementa el protocolo RPC Network Status Monitor (NSM) el cual notifica a los clientes NFS cuando un servidor NFS es reiniciado luego de haber sido apagado abruptamente. Este proceso es iniciado automáticamente por el servicio nfslock y no requiere configuración por parte del usuario. No se utiliza con NFSv4. . rpc.rquotad . Proporciona información de cuotas de usuario para los usuarios remotos. Este proceso se inicia automáticamente por el servicio nfs y no requiere configuración por parte del usuario. . rpc.idmapd . Este proceso proporciona al cliente y servidor NFSv4 llamadas ascendentes (upcalls) que hacen corresponder los nombres NFSv4 (los cuales son cadenas en la forma usuario@dominio) y los UIDs y GIDs locales. Para que idmapd funcione con NFSv4, el /etc/idmapd.conf debe estar configurado. Se requiere este servicio para su uso con NFSv4. . rpc.svcgssd . Este proceso proporciona al servidor los mecanismos de transporte para el proceso de autenticación (Kerberos versión 5) con NFSv4. Se requiere este servicio para su uso con NFSv4. . rpc.gssd. Este proceso proporciona al cliente los mecanismos de transporte para el proceso de autenticación (Kerberos versión 5). Se requiere este servicio para su uso con NFSv4.

10.4 INICIAR Y DETENER NFS

Para ejecutar un servidor NFS, debe estar ejecutándose el servicio portmap. Para verificar que portmap está activo, escriba el comando siguiente como root: /sbin/service portmap status, Si el servicio portmap se está ejecutando, entonces se puede iniciar nfs.

Para iniciar un servidor NFS, como root escriba:

/sbin/service nfs start Para detener el servidor, como usuario root, escriba: /sbin/service nfs stop La opción restart es un atajo para detener y luego iniciar NFS. Esta es la forma más eficiente de hacer que los cambios en la configuración tomen efecto luego de modificar el archivo de configuración por NFS. Para reiniciar el servidor, como usuario root, escriba: /sbin/service nfs restart La opción condrestart (reinicio condicional) solamente inicia nfs si este está actualmente ejecutándose. Esta opción es útil para los scripts, porque no inicia el demonio si este no se está ejecutando.

Page 133: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 133

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Para reiniciar condicionalmente el servidor, como root escriba: /sbin/service nfs condrestart Para recargar el archivo de configuración del servidor NFS sin reiniciar el servicio, como root escriba: /sbin/service nfs reload Por defecto, el servicio nfs no arranca automáticamente en el momento del inicio. Para configurar NFS para que inicie en el momento del arranque, utilice una utilidad de initscript, tal como /sbin/chkconfig, /sbin/ntsysv o la Herramienta de configuración de servicios.

10.5 CONFIGURACIÓN DEL SERVIDOR NFS

Existen tres formas de configurar un servidor NFS en Linux: usando la Herramienta de configuración del servidor NFS (system-config-nfs), modificando manualmente su archivo de configuración (/etc/exports), o utilizando el comando /usr/sbin/exportfs.

Page 134: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

134

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

10.5.1 El archivo de configuración /etc/exports El archivo /etc/exports controla cuáles sistemas de archivos son exportados a las máquinas remotasy especifica opciones. Las líneas en blanco son ignoradas, se pueden comentar líneas con el símbolo # y las líneas largas pueden ser divididas con una barra invertida (\). Cada sistema de archivos exportado debe tener su propia línea y cualquier lista de hosts autorizadas colocada después de un sistema de archivos exportado, debe estar separada por un espacio. Las opciones para cada uno de los hosts deben ser colocadas entre paréntesis directamente detrás del identificador del host, sin ningún espacio de separación entre el host y el primer paréntesis. Una línea para un sistema de archivos exportado tiene la estructura siguiente:

<export > <host1> (<options>) <host2> (<options>) <host3> (<options>) … En esta estructura, reemplace

<export> :con el directorio a exportar, reemplace <host1> : con el host o la red a la cual va a compartir el directorio y reemplace

<options> : con las opciones para ese host o red. Los hosts adicionales se pueden especificar en una lista separada por espacios. Se pueden usar los métodos siguientes para especificar nombres de host: . host único .Cuando una máquina en particular es especificada con nombre completo de dominio, nombre de máquina o dirección IP. . comodines . Usamos un carácter * o ? para referirnos a un grupo de nombres completos de dominio o direcciones IP o que coincidan con una cadena particular de letras. Los comodines no se deberían de utilizar con direcciones IP; sin embargo, es posible para estos funcionar accidentalmente si fallan las búsquedas de DNS inversas.

Tenga cuidado cuando especifique comodines con nombres de dominio completos, pues tienden a ser más exactos de lo que usted cree. Por ejemplo, el uso de *.ejemplo.com como comodín, permitirá a ventas.ejemplo.com acceder al sistema de archivos exportado, pero no a bob.ventas.ejemplo.com. Para coincidir ambas posibilidades, debería usar *.ejemplo.com y también *.*.ejemplo.com

. redes IP . Permite la coincidencia de hosts basados en sus direcciones IP dentro de una red más grande. Por ejemplo, 192.168.0.0/28 permite al acceso a las primeras 16 direcciones IP, desde la 192.168.0.0 a la 192.168.0.15, acceder al sistema de archivos exportado, pero no a la 192.168.0.16 y superiores. . grupos de redes. Permite usar un nombre de grupo de red NIS, escrito como @<group-name> Esto pone al servidor NIS controlando el acceso de este sistema de archivos, donde los usuarios pueden ser añadidos o borrados de un grupo NIS sin que afecte a /etc/exports. En su forma más sencilla, el archivo /etc/exports sólo especifica el directorio a exportar y los hosts que pueden usarlo, como en el ejemplo siguiente: /exported/directory bob.example.com

En el ejemplo, bob.example.com puede montar /exported/directory/. Como no se especifica ninguna opción en este ejemplo, tomarán efecto las siguientes opciones predeterminadas de NFS:

Page 135: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 135

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

. ro . Se montan los sistemas de archivos como de sólo lectura (read-only). Los host remotos no pueden hacer cambios a los datos compartidos en el sistema de archivos. Para permitir que los hosts puedan hacer cambios, debe especificar la opción rw (lectura-escritura, read-write). . wdelay. Provoca que el servidor NFS retrase el escribir a disco si sospecha que otra petición de escritura es inminente. Esto puede mejorar el rendimiento reduciendo las veces que se debe acceder al disco por comandos de escritura separados. Use nofiwdelay para desactivar esta opción, la cual sólo funciona si está usando la opción sync . . rootfisquash . Previene a los usuarios root conectados remotamente de tener privilegios como root asignándoles el id del usuario de nobody. Esto reconvierte el poder del usuario root remoto al de usuario local más bajo, previniendo la alteración desautorizada de archivos en el servidor remoto. Alternativamente, la opción nofirootfisquash lo desactiva. Para reconvertir a todos los usuarios, incluyendo a root, use la opción allfisquash. Para especificar los ID de usuario y grupo para usar con usuarios remotos desde un host particular, utilice las opciones anonuid y anongid, respectivamente. De esta manera, puede crear una cuenta de usuario especial para que los usuarios NFS remotos compartan y especificar (anonuid= uid-value, anongid= gid-value ),

donde

<uid-value> es el número de ID del usuario y <gid-value> es el número de ID del grupo.

Cada valor predeterminado para un sistema de archivos exportado debe ser explícitamente ignorado.

Por ejemplo, si no se especifica la opción rw, entonces el sistema de archivos es exportado como de sólo lectura. Lo siguiente es una línea de muestra de /etc/exports la cual sobreescribe dos opciones predeterminadas:

/another/exported/directory 192.168.0.3(rw,sync)

En este ejemplo 192.168.0.3 puede montar /another/exported/directory/ como lectura/escritura y todas las transferencias al disco son efectuadas antes de completar la petición de escritura del cliente.

Adicionalmente, hay otras opciones que están disponibles que no tienen especificado un valor predeterminado. Estas incluyen la habilidad de desactivar la verificación por subdirectorios, permitir el acceso desde puertos inseguros y permitir bloquear archivos inseguros (necesario para algunas implementaciones antiguas de clientes NFS). Vea la página man de exports para estas opciones menos usadas.

10.5.2 El comando exportfs Cada sistema de archivos que se exporta a usuarios remotos a través de NFS, así como los niveles de acceso relativos a ellos, son listados en el archivo /etc/exports. Cuando comienza el servicio nfs, se lanza el comando /usr/sbin/exportfs y lee este archivo, pasa el control a

Page 136: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

136

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

rpc.mountd (si es NFSv2 or NFSv3) para el proceso de montaje real, luego a rpc.nfsd donde los sistemas de archivos están disponibles a los usuarios remotos. Cuando se ejecuta manualmente, el comando /usr/sbin/exportfs permite al superusuario exportar o no de forma selectiva, directorios concretos sin reiniciar los servicios NFS. Cuando se le pasan las opciones apropiadas, el comando /usr/sbin/exportfs escribe los sistemas de archivos exportados a /var/lib/nfs/xtab. Como rpc.mountd se refiere al archivo xtab para decidir privilegios de acceso a un sistema de archivos, los cambios en la lista de sistemas de archivos exportados toman efecto inmediatamente. Lo siguiente es una lista de las opciones más comunes disponibles para /usr/sbin/exportfs:

. -r . Provoca que todos los directorios listados en /etc/exports sean exportados construyendo una nueva lista de exportación en /etc/lib/nfs/xtab. Esta opción refresca la lista de exportación con cualquier cambio que hubiéramos realizado en /etc/exports. . -a . Provoca que todos los directorios sean exportados o no, dependiendo de qué otras opciones hemos pasado a /usr/sbin/exportfs. Si no se pasan otras opciones, /usr/sbin/exportfs exporta todos los sistemas de archivos especificados en /etc/exports. . -o sistema-de-archivos . Permite especificar directorios a exportar que no estén listados en /etc/exports. Reemplace sistema-de-archivos con los sistemas de archivos adicionales a exportar. Estos sistemas de archivos deben tener el mismo formato en que fueron especificados en /etc/exports. Esta opción se utiliza a menudo para probar un sistema de archivos antes de añadirlo de forma permanente a la lista de sistemas a exportar. . -i. Ignora /etc/exports; sólo las opciones dadas desde la línea de comandos son usadas para definir los sistemas de archivos exportados. . -u . No exporta todos los directorios compartidos. El comando /usr/sbin/exportfs –ua suspende la compartición de archivos NFS mientras que mantiene todos los demonios NFS activos. Para reactivar NFS, teclee exportfs -r. . -v . Operación descriptiva, donde los sistemas de archivos exportados o dejados de exportar son mostrados en gran detalle al ejecutarse el comando exportfs. Si no se pasan opciones al comando /usr/sbin/exportfs, mostrará una lista de los sistemas de archivos actualmente exportados.

10.6 ARCHIVOS DE CONFIGURACIÓN DE CLIENTES NFS

Las comparticiones NFS son montadas en el lado del cliente usando el comando mount. El formato del comando es como sigue:

mount -t <nfs-type> -o <options> <host>:</remote/export> </local/directory> Reemplace <nfs-type> con nfs para servidores NFSv2 o NFSv3, o nfs4 para servidores NFSv4. Reemplace <options> con una lista de opciones separadas por comas para el sistema NFS. Reemplace <host> con el host remoto, </remote/export> con el directorio remoto que está siendo montado y sustituya </local/directory> con el directorio local donde el sistema de archivos remoto se montará.Consulte la página man de mount para más detalles.

Page 137: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 137

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Si está accediendo a una compartición NFS emitiendo manualmente el comando mount, el sistema de archivos debe ser remontado manualmente después de reiniciar el sistema.

10.6.1 /etc/fstab

El archivo /etc/fstab lo referencia el servicio netfs al momento del arranque, por lo que las líneas haciendo referencia a las comparticiones NFS tienen el mismo efecto que escribir manualmente el comando mount durante el arranque. Una muestra de línea de /etc/fstab para montar un NFS exportado será parecida a:

<server>:</remote/export> </local/directory> <nfs-type> <options> 0 0

Reemplace <server> con el nombre de la máquina, dirección IP o nombre de dominio totalmente cualificado del servidor que exporta el sistema de archivos.

Reemplace </remote/export> con la ruta al directorio exportado. Sustituya </local/directory;> con el sistema de archivos local en el cual se montará el directorio exportado. Este punto de montaje debe existir antes de que /etc/fstab sea leído o el montaje fallará. Reemplace <nfs-type> con nfs para servidores NFSv2 o NFSv3, o con nfs4 para servidoresNFSv4. Reemplace <options> con una lista de opciones separada por comas para el sistema NFS

10.7 SERVICIO SAMBA – INTRODUCCIÓN

10.7.1 Acerca de Samba.

SAMBA es un conjunto de programas, originalmente creados por Andrew Tridgell y actualmente mantenidos por The SAMBA Team, bajo la Licencia Publica General GNU, y que implementan en sistemas basados sobre UNIX® el protocolo SMB. Sirve como reemplazo total para Windows® NT, Warp®, NFS® o servidores Netware®.

Necesitará tener instalados los siguientes paquetes, que seguramente vienen incluidos en los discos de instalación de su distribución predilecta:

Page 138: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

138

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

• samba: Servidor SMB.

• samba-client: Diversos clientes para el protoclo SMB.

• samba-common:

Ficheros necesarios para cliente y servidor.

Consulte a la base de datos RPM del sistema si se encuentran instalados estos paquetes, utilizando el siguiente mandato:

rpm -q samba samba-client samba-common

Si se utiliza Red Hat™ Enterprise Linux, solo bastará realizar lo siguiente para instalar o actualizar la programática necesaria:

up2date -i samba samba-client

Si utiliza CentOS 4 o White Box Enterprise Linux 4, solo bastará realizar lo siguiente para instalar o actualizar la programática necesaria:

yum -y install samba samba-client

10.8 CONFIGURACIÓN BASICA DE SAMBA

Para la mayoría de los casos la configuración de Samba como servidor de archivos es suficiente.

10.9 ALTA DE CUENTAS DE USUARIO

Es importante sincronizar las cuentas entre el servidor Samba y las estaciones Windows®. Es decir, si en una máquina con Windows® ingresamos como el usuario "paco" con clave de acceso "elpatito16", en el servidor Samba deberá existir también dicha cuenta con ese mismo nombre y la misma clave de acceso. Como la mayoría de las cuentas de usuario que se utilizarán para acceder hacia samba no requieren acceso al interprete de mandatos del sistema, no es necesario asignar clave de acceso con el mandato passwd y se deberá definir /sbin/nologin o bien /bin/false como interpete de mandatos para la cuenta de usuario involucrada.

useradd -s /sbin/nologin usuario-windows smbpasswd -a usuario-windows

No hace falta se asigne una clave de acceso en el sistema con el mandato passwd puesto que la cuenta no tendrá acceso al interprete de mandatos.

Si se necesita que las cuentas se puedan utilizar para acceder hacia otros servicios como serían Telnet, SSH, etc, es decir, que se permita acceso al interprete de mandatos, será necesario especificar /bin/bash como interprete de mandatos y además se deberá asignar una clave de acceso en el sistema con el mandato passwd:

Page 139: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 139

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

useradd -s /bin/bash usuario-windows passwd usuario-windows smbpasswd -a usuario-windows

10.10 EL FICHERO lMHOSTS

Es necesario empezar resolviendo localmente los nombres NetBIOS asociándolos con direcciones IP correspondientes. Para fines prácticos el nombre NetBIOS debe tener un máximo de 11 caracteres. Normalmente tomaremos como referencia el nombre corto del servidor o el nombre corto que se asignó como alias a la interfaz de red. Este lo estableceremos en el fichero /etc/samba/lmhosts, en donde encontraremos lo siguiente:

127.0.0.1 localhost

Debemos añadir entonces el nombre que hayamos elegido asociado a la dirección IP que se tenga dentro de la red local. Opcionalmente podrá añadir también los nombres y dirección IP del resto de las máquinas que conformen la red local. La separación de espacios se hace con un tabulador.

Ejemplo:

127.0.0.1 localhost 192.168.1.5 maquinalinux 192.168.1.6 isaac 192.168.1.7 finanzas 192.168.1.8 direccion

10.11 CONFIGURACIÓN DEL SERVIDOR SAMBA

10.11.1 Parámetros principales del fichero smb.conf.

Modifique el fichero /etc/samba/smb.conf con cualquier editor de texto. Dentro de este notará que la información que le será de utilidad viene comentada con un símbolo # y los ejemplos con ; (punto y coma), siendo estos últimos los que tomaremos como referencia.

Empezaremos por establecer el grupo de trabajo editando el valor del parámetro workgroup asignando un grupo de trabajo deseado:

workgroup = MIGRUPO

Opcionalmente puede establecer con el parámetro netbios name otro nombre distinto para el servidor si acaso fuese necesario, pero siempre tomando en cuenta que dicho nombre deberá corresponder con el establecido en el fichero /etc/samba/lmhosts:

netbios name = maquinalinux

Page 140: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

140

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

El parámetro server string es de carácter descriptivo. Puede utilizarse un comentario breve que de una descripción del servidor.

server string = Servidor Samba %v en %L

10.11.2 Parámetros útiles para la seguridad.

La seguridad es importante y esta se puede establecer primeramente estableciendo la lista de control de acceso que definirá que máquinas o redes podrán acceder hacia el servidor. El parámetro hosts allow sirve para determinar esto. Si la red consiste en las máquinas con dirección IP desde 192.168.1.1 hasta 192.168.1.254, el rango de direcciones IP que se definirá en hosts allow será 192.168.1., de modo tal que sólo se permitirá el acceso dichas máquinas. Note por favor el punto al final de cada rango. Modifique ésta, de manera que quede del siguiente modo:

hosts allow = 192.168.1. 127.

El parámetro interfaces permite establecer desde que interfaces de red del sistema se escucharán peticiones. Samba no responderá a peticiones provenientes desde cualquier interfaz no especificada. Esto es útil cuando Samba se ejecuta en un servidor que sirve también de puerta de enlace para la red local, impidiendo se establezcan conexiones desde fuera de la red local.

interfaces = 192.168.1.254/24

10.11.3 Impresoras en Samba.

Las impresoras se comparten de modo predeterminado, así que solo hay que realizar algunos ajustes. Si se desea que se pueda acceder hacia la impresora como usuario invitado sin clave de acceso, basta con añadir public = Yes en la sección de impresoras del siguiente modo:

[printers] comment = El comentario que guste. path = /var/spool/samba printable = Yes browseable = No writable = no printable = yes public = Yes

Windows NT, 2000 y XP no tendrán problema alguno para acceder e imprimir hacia las impresoras, sin embargo Windows 95, 98 y ME suelen tener problemas para comunicarse con Samba para poder imprimir. Por tanto, si se quiere evitar problemas de conectividad con dichos sistemas operativos hay que agregar algunos parámetros que resolverán cualquier eventualidad:

[printers] comment = Impresoras.

Page 141: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 141

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

path = /var/spool/samba printable = Yes browseable = No writable = no printable = yes public = Yes print command = lpr -P %p -o raw %s -r lpq command = lpstat -o %p lprm command = cancel %p-%j

Se pude definir también a un usuario o bien un grupo (@grupo_que_sea) para la administración de las colas de las impresoras:

[printers] comment = Impresoras. path = /var/spool/samba printable = Yes browseable = No writable = no printable = yes public = Yes print command = lpr -P %p -o raw %s -r lpq command = lpstat -o %p lprm command = cancel %p-%j printer admin = fulano, @opers_impresion

Con lo anterior se define que el usuario fulano y quien pertenezca al grupo opers_impresion podrán realizar tareas de administración en las impresoras.

10.11.4 Compartiendo directorios a través de Samba.

Para los directorios o volúmenes que se irán a compartir, en el mismo fichero de configuración encontrará distintos ejemplos para distintas situaciones particulares. En general, puede utilizar el siguiente ejemplo que funcionará para la mayoría:

[Lo_que_sea] comment = Comentario que se le ocurra path = /cualquier/ruta/que/desee/compartir

El volumen puede utilizar cualquiera de las siguientes opciones:

Opción Descripción

guest ok Define si ser permitirá el acceso como usuario invitado. El valor puede ser Yes o No.

public Es un equivalente del parámetro guest ok, es decir define si ser permitirá el acceso como usuario invitado. El valor puede ser Yes o No.

browseable Define si se permitirá mostrar este recurso en las listas de recursos compartidos. El valor puede ser Yes o No.

Page 142: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

142

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

writable Define si ser permitirá la escritura. Es el parámetro contrario de read only. El valor puede ser Yes o No. Ejemplos: «writable = Yes» es lo mismo que «read only = No». Obviamente «writable = No» es lo mismo que «read only = Yes»

valid users Define que usuarios o grupos pueden acceder al recurso compartido. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores

write list Define que usuarios o grupos pueden acceder con permiso de escritura. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores

admin users Define que usuarios o grupos pueden acceder con permisos administrativos para el recurso. Es decir, podrán acceder hacia el recurso realizando todas las operaciones como super-usuarios. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores

directory mask Es lo mismo que directory mode. Define que permiso en el sistema tendrán los subdirectorios creados dentro del recurso. Ejemplos: 1777

create mask Define que permiso en el sistema tendrán los nuevos ficheros creados dentro del recurso. Ejemplo: 0644

En el siguiente ejemplo se compartirá a través de Samba el recurso denominado ftp, el cual está localizado en el directorio /var/ftp/pub del disco duro. Se permitirá el acceso a cualquiera pero será un recurso de solo lectura salvo para los usuarios administrador y fulano. Todo directorio nuevo que sea creado en su interior tendrá permiso 755 y todo fichero que sea puesto en su interior tendrá permiso 644.

[ftp] comment = Directorio del servidor FTP path = /var/ftp/pub guest ok = Yes read only = Yes write list = fulano, administrador directory mask = 0755 create mask = 0644

10.11.5 Configuración avanzada de Samba.

Samba fue creado con un objetivo: ser en un reemplazo definitivo para Windows como servidor en una red local. Ésto, por supuesto, requiere algunos procedimientos adicionales dependiendo de las necesidades de la red local.

Page 143: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 143

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

10.11.6 Re-asignación de grupos de Windows en Samba.

Los grupos que existen en Windows también se utilizan en Samba para ciertas operaciones, principalmente relacionadas con lo que involucra un Controlador Primario de dominio (o PDC que significa Primary Domain Controler). Estos grupos existen de modo predefinido en Samba. Sin embargo, si se ejecuta lo siguiente:

net groupmap list

Devolverá la siguiente información:

System Operators (S-1-5-32-549) -> -1 Domain Admins (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-512) -> -1 Replicators (S-1-5-32-552) -> -1 Guests (S-1-5-32-546) -> -1 Domain Guests (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-514) -> -1 Power Users (S-1-5-32-547) -> -1 Print Operators (S-1-5-32-550) -> -1 Administrators (S-1-5-32-544) -> -1 Account Operators (S-1-5-32-548) -> -1 Domain Users (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-513) -> -1 Backup Operators (S-1-5-32-551) -> -1 Users (S-1-5-32-545) -> -1

Lo anterior corresponde al mapa de los grupos que, de modo predeterminado, utilizará Samba si éste fuese configurado como Controlador Primario de Dominio. XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX corresponde a un número generado aleatoriamente al iniciarse Samba por primera vez. Tome nota de dicho número, ya que lo requerirá más adelante para re-asignar los nombres al español en el mapa de grupos.

Los grupos anteriormente descritos trabajarán perfecta y limpiamente asociándolos contra grupos en el sistema, pero solo si utiliza alguna versión de Windows en ingles. Si utiliza alguna versión de Windows en español, habrá que re-asignar los nombres de los grupos a los correspondientes al español y asociarles a grupos en el sistema, esto a fin de permitir asignar usuarios a dichos grupos y de este modo delegar tareas de administración del mismo modo que en Windows.

Es por tal motivo que si se tiene la intención de configurar Samba como Controlador Primario de Dominio y al mismo tiempo poder hacer uso de los grupos del mismo modo que en Windows, es decir, por mencionar un ejemplo, permitir a ciertos usuarios pertenecer al grupo de administradores del dominio con privilegios de administrador, lo primero será entonces generar los grupos en el sistema ejecutando como root los siguientes mandatos:

groupadd -r administradores groupadd -r admins_dominio groupadd -r duplicadores groupadd -r invitados groupadd -r invs_dominio groupadd -r opers_copias

Page 144: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

144

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

groupadd -r opers_cuentas groupadd -r opers_impresion groupadd -r opers_sistema groupadd -r usrs_avanzados groupadd -r usuarios groupadd -r usuarios_dominio

Una vez creados los grupos en el sistema, solo resta re-asignar los nombres al español en el mapa de grupo de Samba y asociarles a éstos los grupos recién creados en el sistema. El procedimiento se resume a ejecutar algo como lo siguiente:

net groupmap modify \ ntgroup="Nombre grupo Windows en español" \ sid="número-de-identidad-en-sistema" \ unixgroup="grupo_en_linux" \ comment="comentario descriptivo acerca del grupo"

Lo anterior establece que se modifique el registro del grupo que corresponda al sid (identidad de sistema) definido con el nombre establecido con ntgroup, asociándolo al grupo en el servidor con unixgroup y añadiendo un comentario descriptivo acerca de dicho grupo con comment.

De modo tal, y a fin de facilitar las cosas a quien haga uso de este manual, puede utilizar el siguiente guión para convertir los nombres al español y asociarlos a grupos en Linux, donde solo deberá definir el número de identidad del sistema que corresponda al servidor:

#!/bin/sh SIDSAMBA=XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX net groupmap modify ntgroup="Administradores" \ sid="S-1-5-32-544" unixgroup=administradores \ comment="Los administradores tienen acceso completo y sin restricciones al equipo o dominio" net groupmap modify ntgroup="Admins. del dominio" \ sid="S-1-5-21-$SIDSAMBA-512" unixgroup=admins_dominio \ comment="Administradores designados del dominio" net groupmap modify ntgroup="Duplicadores" \ sid="S-1-5-32-552" unixgroup=duplicadores \ comment="Pueden duplicar archivos en un dominio" net groupmap modify ntgroup="Invitados del dominio" \ sid="S-1-5-21-$SIDSAMBA-514" unixgroup=invitados \ comment="Todos los invitados del dominio" net groupmap modify ntgroup="Invitados" \ sid="S-1-5-32-546" unixgroup=invitados \ comment="Los invitados tienen de modopredeterminado el mismo acceso que los miembros del grupo Usuarios, excepto la cuenta Invitado que tiene mas restricciones" net groupmap modify ntgroup="Operadores de copias" \

Page 145: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 145

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

sid="S-1-5-32-551" unixgroup=opers_copias \ comment="Los operadores de copia pueden sobrescribir restricciones de seguridad con el unico proposito de hacer copias de seguridad o restaurar archivos" net groupmap modify ntgroup="Opers. de cuentas" \ sid="S-1-5-32-548" unixgroup=opers_cuentas \ comment="Pueden administrar cuentas de usuarios y grupos del dominio" net groupmap modify ntgroup="Opers. de impresión" \ sid="S-1-5-32-550" unixgroup=opers_impresion \ comment="Pueden operar impresoras del dominio" net groupmap modify ntgroup="Opers. de servidores" \ sid="S-1-5-32-549" unixgroup=opers_sistema \ comment="Pueden administrar sistemas del dominio" net groupmap modify ntgroup="Usuarios avanzados" \ sid="S-1-5-32-547" unixgroup=usrs_avanzados \ comment="Los usuarios avanzados tienen mas derechos administrativos con algunas restricciones. De este modo, pueden ejecutar aplicaciones heredadas junto con aplicaciones certificadas" net groupmap modify ntgroup="Usuarios del dominio" \ sid="S-1-5-21-$SIDSAMBA-513" unixgroup=usuarios_dominio \ comment="Todos los usuarios del dominio" net groupmap modify ntgroup="Usuarios" \ sid="S-1-5-32-545" unixgroup=usuarios \ comment="Los usuarios no pueden hacer cambios accidentales o intencionados en el sistema. Pueden ejecutar aplic. certificadas, pero no la mayoría de las heredadas" exit 0

Nota: Este guión en esta incluido en el disco de “Extras de curso” de Linux Para Todos. Solo basta editarlo y

definir la variable SIDSAMBA y ejecutarlo como root.

Una vez hecho lo anterior, al volver a realizar lo siguiente:

net groupmap list

Se deberá de mostrar ahora esto otro:

Opers. de servidores (S-1-5-32-549) -> opers_sistema Admins. del dominio (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-512) -> admins_dominio Duplicadores (S-1-5-32-552) -> duplicadores Invitados (S-1-5-32-546) -> invitados Invitados del dominio (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-514) -> invitados Usuarios avanzados (S-1-5-32-547) -> usrs_avanzados Opers. de impresión (S-1-5-32-550) -> opers_impresion

Page 146: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

146

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Administradores (S-1-5-32-544) -> administradores Opers. de cuentas (S-1-5-32-548) -> opers_cuentas Usuarios del dominio (S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX-513) -> usuarios_dominio Operadores de copias (S-1-5-32-551) -> opers_copias Usuarios (S-1-5-32-545) -> usuarios

De este modo, si por ejemplo, se agrega al usuario fulano al grupo admins_dominio, se tendrá el mismo efecto que si se hiciera lo mismo en Windows agregando al usuario al grupo Admins. del dominio. Esto por supuesto solamente tendrá utilidad si Samba se configura y utiliza como Controlador Primario de Dominio.

11.11. Alta de cuentas de usuario en Controlador Primario de Dominio.

Si se configuró Samba para funcionar como Controlador Primario de Dominio, será necesario asignar a root una clave de acceso en Samba, la cual por supuesto puede ser diferente a la del sistema, debido a que las estaciones de trabajo necesitan autenticar primero con el usuario root de Samba para poder unirse dominio y poder crear de este modo una cuenta de máquina en el sistema a través del parámetro add machine script ya

descrito anteriormente.

Los usuarios es necesario darlos de alta de modo que queden agregados a los que correspondan en el sistema a grupos Usuarios y Usuarios del dominio de Windows, es decir a los grupos usuarios y usuarios_dominio.

useradd -s /sbin/nologin -G usuarios,usuarios_dominio usuario-windows smbpasswd -a usuario-windows

Si el usuario ya existiese, solo será necesario agragarlo a los grupos usuarios y usuarios_dominio con gpassswd del siguiente modo:

gpasswd -a usuario-windows usuarios gpasswd -a usuario-windows usuarios_dominio

En teoría en el directorio definido para el recurso Profiles se deben crear automáticamente los directorios de los usuarios donde se almacenarán los perfiles. De ser necesario es posible generar éstos directorios utilizando el siguiente guión:

cd /home for user in * do mkdir -p /var/lib/samba/profiles/$user chown $user.$user /var/lib/samba/profiles/$user done

Page 147: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 147

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

10.12 PARAMETROS DE CONFIGURACIÓN AVANZADA EN EL FICHERO smb.conf

10.12.1. Anunciando el servidor Samba en los grupos de trabajo.

La opción remote announce se encarga de que el servicio nmbd se anuncie a si mismo de forma periódica hacia una red en particular y un grupo de trabajo específico. Esto es particularmente útil si se necesita que el servidor Samba aparezca no solo en el grupo de trabajo al que pertenece sino también otros grupos de trabajo. El grupo de trabajo de destino puede estar en donde sea mientras exista una ruta y sea posible la transmisión exitosa de paquetes.

remote announce = 192.168.1.255/MI-DOMINIO 192.168.2.255/OTRO-DOMINIO

El ejemplo anterior definió que el servidor Samba se anuncie a si mismo al los grupos de trabajo MI-DOMINIO y OTRO-DOMINIO en las redes cuyas IP de transmisión son 192.168.1.255 y 192.168.2.255 correspondientemente.

10.12.2. Ocultando y denegando acceso a ficheros.

No es conveniente que los usuarios acceder o bien puedan ver la presencia de ficheros ocultos en el sistema, es decir ficheros cuyo nombre comienza con un punto, particularmente si acceden a su directorio personal en el servidor Samba (.bashrc, .bash_profile, .bash_history, etc.). Puede utilizarse el parámetro hide dot files para mantenerlos ocultos.

hide dot files = Yes

En algunos casos puede ser necesario denegar el acceso a cierto tipo de ficheros del sistema. El parámetro veto files se utiliza para especificar la lista, separada por diagonales, de aquellas cadenas de texto que denegarán el acceso a los ficheros cuyos nombres contengan estas cadenas. En el siguiente ejemplo, se denegará el acceso hacia los ficheros cuyos nombres incluyan la palabra «Security» y los que tengan extensión o terminen en «.tmp»:

veto files = /*Security*/*.tmp/

10.12.3. Opciones para cliente o servidor Wins.

Puede habilitar convertirse en servidor WINS o bien utilizar un servidor WINS ya existente. Se puede ser un servidor WINS o un cliente WINS, pero no ambas cosas a al vez.

Si se va ser el servidor WINS, debe habilitarse lo siguiente: wins support = Yes Si se va a utilizar un servidor WINS ya existente, debe descomentar la siguiente línea y especificar que dirección IP utiliza dicho servidor WINS:

Page 148: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

148

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

wins server = 192.168.1.1

10.12.4. Opciones específicas para Controlador Primario de Dominio (PDC).

Si se va a configurar Samba como Controlador Primario de Dominio, se debe especificar todos los parámetros descritos a continuación.

Si se quiere que las claves de acceso del sistema y Windows se mantengan sincronizadas, es necesario descomentar las siguiente líenas:

unix password sync = Yes passwd program = /usr/bin/passwd %u passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*

El parámetro local master define al servidor como examinador del dominio (o master browser); El parámetro domain master define al servidor maestro del dominio; El parámetro preferred master define al servidor como maestro del domino preferido en caso de haber más servidores presentes en el mismo dominio como controladores de dominio; El parámetro time server se utiliza para definir que las estaciones deberán sincronizar la hora con el servidor al unirse al dominio; El parámetro domain logons define que el servidor permitirá a las estaciones autenticar contra Samba.

local master = Yes domain master = Yes preferred master = Yes time server = Yes domain logons = Yes

La configuración de Controlador Primario de Dominio requiere además definir donde se almacenarán los perfiles de los usuarios. Windows 95, 98 y ME requieren se defina con el parámetro logon home, en tanto que Windows NT, 2000 y XP requieren se haga con el parámetro logon path. Para efectos prácticos y de previsión, utilice ambos parámetros y defina la unidad H para dicho volumen:

logon path = \\%L\Profiles\%U logon home = \\%L\%U\.profile logon drive = H:

Si se va a utilizar Samba como Controlador Primario de Dominio, es necesario establecer el guión que ejecutarán las estaciones Windows al conectarse hacia el servidor. Esto se hace a través del parámetro logon script el cual puede definir o bien un guión a utilizar por cada usuario (%u.bat) o bien por cada máquina (%m.bat) o bien de modo general para todos (logon.cmd). Para no complicar las cosas, defina inicialmente un guión general para todos del siguiente modo:

logon script = logon.cmd

El fichero /var/lib/samba/netlogon/logon.cmd deberá contener algo como lo siguiente:

Page 149: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 149

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

REM windows client logon script REM net time \\mi-servidor /SET /YES net use H: \\mi-servidor\homes /PERSISTENT:NO

El Controlador Primario de Dominio va a necesitar también se definan los guiones a ejecutar para distintas tareas como alta de máquinas, usuarios y grupos así como la baja de estos.

add user script = /usr/sbin/useradd %u add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -c "Cuenta de máquina" -M %u delete user script = /usr/sbin/userdel %u delete group script = /usr/sbin/groupdel %g add user to group script = /usr/bin/gpasswd -a %u %g set primary group script = /usr/sbin/usermod -g %g %u

El parámetro add user script sirve para definir lo que se deberá ejecutar en el trasfondo en el sistema para crear una nueva cuenta de usuario. El parámetro add machine script es particularmente importante porque es el mandato utilizado para dar de alta cuentas de máquinas (trust accounts o cuentas de confianza) de modo automático. El parámetro delete user script es para definir lo propio para eliminar usuarios, delete group script para eliminar grupos, add user to group para añadir usuarios a grupos y set primary group script para establecer un grupo como el principal para un usuario.

Directorio para Netlogon y perfiles en Controlador Primario de Dominio (PDC).

Si se va a utilizar Samba como Controlador Primario de Dominio, es necesario definir los recursos donde residirá netlogon y también donde se almacenarán los perfiles de los usuarios:

[netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon write list = @administradores, @admins_dominio guest ok = Yes browseable = Yes [Profiles] path = /var/lib/samba/profiles read only = No guest ok = Yes create mask = 0600 directory mask = 0700

Genere con el mandato mkdir los directorios /var/lib/samba/profiles y /var/lib/samba/netlogon. El directorio /var/lib/samba/profiles deberá pertenecer a root y al grupo users y tener permiso 1777 a fin de permitir crear el directorio de perfil correspondiente para cada usuario.

mkdir -p -m 1777 /var/lib/samba/profiles mkdir -p /var/lib/samba/netlogon

Page 150: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

150

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

chgrp users /var/lib/samba/profiles

10.13 INICIAR EL SERVICIO Y AÑADIRLO AL ARRANQUE DEL SISTEMA

Si iniciará Samba por primera vez realice lo siguiente:

/sbin/service smb start

Si va a reiniciar el servicio, realice lo siguiente:

/sbin/service smb restart

Para que Samba inicie automáticamente cada vez que inicie el servidor solo ejecute el siguiente mandato:

/sbin/chkconfig smb on

10.14 ACCEDIENDO HACIA SAMBA

10.14.1 Modo texto.

Smbclient.

Indudablemente el método más práctico y seguro es el mandato smbclient. Este permite acceder hacía cualquier servidor Samba o Windows® como si fuese el mandato ftp en modo texto.

Para acceder al cualquier recurso de alguna máquina Windows® o servidor SAMBA determine primero que volúmenes o recursos compartidos posee está. utilice el mandato smbclient del siguiente modo:

smbclient -U usuario -L alguna_maquina

Lo cual le devolvería más menos lo siguiente:

Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E] Sharename Type Comment --------- ---- ------- homes Disk Home Directories netlogon Disk Network Logon Service ftp Disk ftp IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)

Page 151: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 151

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor) epl5900 Printer Created by redhat-config-printer 0.6.x hp2550bw Printer Created by redhat-config-printer 0.6.x Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E] Server Comment --------- ------- mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor Workgroup Master --------- ------- MI-DOMINIO MI-SERVIDOR

La siguiente corresponde a la sintaxis básica para poder navegar los recursos compartidos por la máquina Windows® o el servidor SAMBA:

smbclient //alguna_maquina/recurso -U usuario

Ejemplo:

smbclient //LINUX/FTP -U jbarrios

Después de ejecutar lo anterior, el sistema solicitará se proporcione la clave de acceso del usuario jbarrios en el equipo denominado LINUX.

smbclient //LINUX/FTP -U jbarrios added interface ip=192.168.1.254 bcast=192.168.1.255 nmask=255.255.255.0 Password: Domain=[miusuario] OS=[Unix] Server=[Samba 2.2.1a] smb: \>

Pueden utilizarse virtualmente los mismos mandatos que en el interprete de ftp, como serían get, mget, put, del, etc.

Por montaje de unidades de red.

Si necesita poder visualizar desde GNU/Linux a las máquinas con Windows® e interactuar con los directorios compartidos por estás, necesitará realizar algunos pasos adicionales. De manera predeterminada, y por motivos de seguridad, solo root puede utilizar los mandatos smbmnt y smbumount. Deberá entonces establecer permisos de SUID a dichos mandatos. Puede hacerlo ejecutando, como root lo siguiente:

chmod 4755 /usr/bin/smbmnt chmod 4755 /usr/bin/smbumount

Para acceder hacia una máquina Windows® determine primero que volúmenes o recursos compartidos posee está. utilice el mandato smbclient del siguiente modo:

smbclient -N -L alguna_maquina

Page 152: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

152

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Lo cual le devolvería más menos lo siguiente:

Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E] Sharename Type Comment --------- ---- ------- homes Disk Home Directories netlogon Disk Network Logon Service ftp Disk ftp IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor) ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor) epl5900 Printer Created by redhat-config-printer 0.6.x hp2550bw Printer Created by redhat-config-printer 0.6.x Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E] Server Comment --------- ------- mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor Workgroup Master --------- ------- MI-DOMINIO MI-SERVIDOR

En el ejemplo anterior hay un volumen compartido llamado algún_volumen. Si queremos montar este, debemos crear un punto de montaje. Éste puede crearse en cualquier directorio sobre el que tengamos permisos de escritura. Para montarlo, utilizamos entonces la siguiente línea de mandato:

smbmount //alguna_maquina/algún_volumen /punto/de/montaje/

Si la máquina Windows® requiere un usuario y una clave de acceso, puede añadir a lo anterior las opciones -username=el_necesario -password=el_requerido -workgroup=MIGRUPO

Si la distribución de GNU/Linux utilizada es reciente, también puede utilizar el ya conocido mandato mount del siguiente modo:

mount -t smbfs -o username=el_necesario,password=el_requerido //alguna_maquina/algún_volumen /punto/de/montaje/

Si se genera una cuenta pcguest, similar a la cuenta nobody, podemos montar volúmenes SMB sin ingresar una clave de acceso pero con privilegios restringidos, o aquellos que definamos a un volumen accedido por un usuario invitado. Esto sería el método por elección para compartir volúmenes en una red de área local. Puede generarse una cuenta pcguest o bien dejar que el sistema tome al usuario nobody. Si opta por lo primero, solo de de alta la cuenta NO asigne clave de acceso alguna. Montar volúmenes remotos como usuarios invitado es muy sencillo. Un ejemplo real sería:

Page 153: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 153

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

mount -t smbfs -o guest //LINUX/FTP //var/ftp

Lo anterior monta un volumen SAMBA de una máquina con GNU/Linux en otra máquina con GNU/Linux.

Puede añadirse también una entrada en /etc/fstab de modo que sólo tenga que ser tecleado mount /punto/de/montaje. Esta línea sería de modo similar al siguiente:

//LINUX/FTP /var/ftp smbfs user,auto,guest,ro,gid=100 0 0

Recuérdese que el volumen compartido debe estar configurado para permitir usuarios invitados:

[FTP] comment = Programática libre (RPMS) path = /var/ftp/pub public = Yes guest ok = Yes

Modo gráfico

Desde el entorno de GNOME

Si utiliza GNOME 2.x o superior, éste incluye un módulo para Nautilus que permite acceder hacia los recursos compartidos a través de Samba sin necesidad de modificar cosa alguna en el sistema. Solo hay que hacer clic en Servidores de red en el menú de GNOME.

Page 154: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

154

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Desde Windows

Por su parte, desde Windows deberá ser posible acceder sin problemas hacia Samba como si fuese hacia cualquier otra máquina con Windows. Vaya, ni Windows ni el usuario notarán siquiera la diferencia.

Uniendo máquinas al dominio del Controlador Primario de Dominio

El controlador de dominio permite utilizar a Samba como servidor de autenticación y servidor de archivos que además permite almacenar el perfil, preferencias y documentos del usuario en el servidor automáticamente sin la intervención del usuario.

Creando manualmente cuentas de máquinas

Bajo algunas circunstancias será necesario crear cuentas de máquinas (trust accounts o cuentas de confianza) a fin de permitir unirse al dominio. el procedimiento es simple:

/usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -c "Cuenta de máquina" -M maquina-windows$ smbpasswd -a maquina-windows$

Es de resaltar que las cuentas de máquinas deben incluir obligatoriamente un símbolo $ al final del nombre.

Windows 95/98/ME y Windows XP Home

Ya que los sistemas con Windows 95/98/ME y Windows XP Home no incluyen una implementación completa como miembros de dominio, no se requieren cuentas de confianza. El procedimiento para unirse al dominio es el siguiente:

• Acceder hacia Menú de inicio → Configuraciones → Panel de control → Red

• Seleccione la pestaña de Configuración

• Seleccione «Cliente de redes Microsoft»

• Haga clic en el botón de propiedades

• Seleccione Acceder a dominio de Windows NT y especifique el dominio correspondiente.

• Clic en todos los botones de «Aceptar» y reinicie el sistema

• Acceda con cualquier usuario que haya sido dado de alta en el servidor Samba y que además cuente con una clave de acceso asignada con smbpasswd.

Windows NT

• Crear manualmente la cuenta de máquina como se decribió anteriormente.

• Acceder hacia Menú de inicio → Configuraciones → Panel de control → Red.

• Seleccionar la pestaña de «Identificación».

• Clic en el botón de «Cambiar».

Page 155: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 155

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

• Ingrese el nombre del dominio y el nombre del sistema. No selecione «Crear una cuenta de máquina en el Dominio».

• Clic en «Aceptar»

• Espere algunos segundos.

• Deberá mostrarse un mensaje emergente de confirmación que dice «Bienvenido a MI-DOMINIO»

• Reinicie el sistema

• Acceda con cualquier usuario que haya sido dado de alta en el servidor Samba y que además cuente con una clave de acceso asignada con smbpasswd.

Windows 2000/2003 y Windows XP Profesional

• Clic derecho en el icono de «Mi PC».

• Seleccionar «Propiedades»

• Haga clic en la pestaña de «Identificación de red» o «Nombre del sistema».

• Clic en el botón de «Propiedades».

• Clic en el botón «Miembro de dominio»

• Ingrese el nombre del dominio y el nombre de la máquina y haga clic en el botón de «Aceptar»

• Aparecerá un diálogo que preguntará por una cuenta y clave de acceso con privilegios de administración en el servidor. Especifique la root y la clave de acceso que asignó a la cuenta de root con el mandato smbpasswd (NO LA CLAVE DE ACCESO DE ROOT EN EL SISTEMA).

• Espere algunos segundos.

• Deberá mostrarse un mensaje emergente de confirmación que dice «Bienvenido a MI-DOMINIO»

• Reinicie el sistema

• Acceda con cualquier usuario que haya sido dado de alta en el servidor Samba y que además cuente con una clave de acceso asignada con smbpasswd.

Page 156: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

156

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Autoevaluación

1. ¿Qué permite el servicio NFS?

2. ¿Qué permite el servicio samba?

3. ¿Cuál es el archivo de configuración del servicio NFS?

(a) smb.conf

(b) exports

(c) resolv.conf

(d) hosts

Page 157: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 157

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

SERVIDORES DNS

TEMA Describir el uso del Sistema de Nombres de Dominio (DNS).

OBJETIVOS ESPECÍFICOS

Comprender el funcionamiento del Sistema de Nombres de Dominio

Comprender el funcionamiento del Servidor DNS de solo-caché

CONTENIDOS

Introducción a DNS

Funcionamiento del DNS

Configuración del Servidor DNS

Configuración y consultas del cliente DNS.

Configuración de DNS Primario

UNIDAD

11

Page 158: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

158

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 159: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 159

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

11.1 SISTEMA DNS

El Sistema de Nombres de Dominio (DNS) se utiliza para buscar equipos y servicios mediante nombres descriptivos. Cuando un usuario escribe un nombre DNS en una aplicación, el servidor DNS puede traducir el nombre a la información asociada con el mismo, como una dirección IP. En la actualidad las redes son heterogéneas (los hosts usan distintos Sistemas Operativos) por lo que el uso de servidores de nombres es requerido de forma obligatoria ya que los protocolos usados requieren DNS.

La mayoría de empresas son pequeñas y medianas con un número pequeño de hosts por lo que la responsabilidad de la administración de los servidores de nombres recae en el Proveedor de Servicios de Internet (ISP), esta empresa se encargará de la administración del espacio de nombres de su dominio DNS, alojará y gestionará los datos de su zona DNS.

Para las empresas que un número mayor de hosts sea considerable, tendrá que administrar su propio servidor de nombres para facilitar la resolución de nombres de su red.

11.1.1 Berkeley Intenet name Domain - Bind

Bind es una aplicación de los protocolos del Sistema de Nombre de Dominio (DNS) y proporciona los principales componentes del Sistema de Nombre de Dominio, incluyendo: Un servidor DNS (named). Una biblioteca resolver DNS (cliente DNS). Herramientas por verificar el funcionamiento apropiado del servidor de DNS. La página oficial del proyecto es: http://www.isc.org

Page 160: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

160

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

ISC BIND se puede instalar tanto en Linux como en Windows 2008/7/8

11.2 INSTALACIÓN DEL SERVIDOR DNS

ISC Bind se puede instalar tanto en Linux como en Windows 2000/XP/2003, para el caso específico de Linux se deben instalar los siguientes paquetes: bind – Una implementación de los protocolos DNS.

Page 161: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 161

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

bind-utils – Contiene una colección de utilidades para consultas DNS a servidores de nombres para encontrar información de hosts de Internet.

caching-nameserver – Incluye los archivos de configuración que hacen al servidor de nombre DNS ISC BIND named actuar como un simple servidor de nombre de solo-caché.

system-config-bind – Proporciona una interface grafica de usuario (GUI) para configurar el servidor DNS ISC BIND named.

11.2.1 Demonio: named Es el demonio encargado de activar/desactivar el servidor DNS y es manipulado por el script /etc/init.d/named.

BIND almacena su configuración en las siguientes ubicaciones: /etc/named.conf – Archivo de configuración para el demonio named. Directorio /var/named/ - Directorio de trabajo de named el cual almacena los

archivos de zonas, estadísticas y caché.

11.3 TIPOS DE SERVIDORES DNS.

Hay dos tipos de servidores de nombres:

• Servidor Maestro: También denominado Primario. Obtiene los datos del dominio a partir de un fichero hospedado en el mismo servidor.

• Servidor Esclavo: También denominado Secundario. Al iniciar obtiene los datos del dominio a través de un Servidor Maestro (o primario), realizando un proceso denominado transferencia de zona.

Page 162: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

162

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Un gran número de problemas de operación de servidores DNS se atribuyen a las pobres opciones de servidores secundarios para las zonas de DNS. De acuerdo al RFC 2182, el DNS requiere que al menos tres servidores existan para todos los dominios delegados (o zonas). Una de las principales razones para tener al menos tres servidores para cada zona es permitir que la información de la zona misma esté disponible siempre y forma confiable hacia los Clientes DNS a través de Internet cuando un servidor DNS de dicha zona falle, no esté disponible y/o esté inalcanzable. Contar con múltiples servidores también facilita la propagación de la zona y mejoran la eficiencia del sistema en general al brindar opciones a los Clientes DNS si acaso encontraran dificultades para realizar una consulta en un Servidor DNS. En otras palabras: tener múltiples servidores para una zona permite contar con redundancia y respaldo del servicio.

Con múltiples servidores, por lo general uno actúa como Servidor Maestro o Primario y los demás como Servidores Esclavos o Secundarios. Correctamente configurados y una vez creados los datos para una zona, no será necesario copiarlos a cada Servidor Esclavo o Secundario, pues éste se encargará de transferir los datos de manera automática cuando sea necesario.

Los Servidores DNS responden dos tipos de consultas:

• Consultas Iterativas (no recursivas): El cliente hace una consulta al Servidor DNS y este le responde con la mejor respuesta que pueda darse basada sobre su caché o en las zonas locales. Si no es posible dar una respuesta, la consulta se reenvía hacia otro Servidor DNS repitiéndose este proceso hasta encontrar al Servidor DNS que tiene la Zona de Autoridad capaz de resolver la consulta.

• Consultas Recursivas: El Servidor DNS asume toda la carga de proporcionar una respuesta completa para la consulta realizada por el Cliente DNS. El Servidor DNS desarrolla entonces Consultas Iterativas separadas hacia otros Servidores DNS (en lugar de hacerlo el Cliente DNS) para obtener la respuesta solicitada.

Zonas de Autoridad.

Permiten al Servidor Maestro o Primario cargar la información de una zona. Cada Zona de Autoridad abarca al menos un dominio y posiblemente sus sub-dominios, si estos últimos no son delegados a otras zonas de autoridad. La información de cada Zona de Autoridad es almacenada de forma local en un fichero en el Servidor DNS. Este fichero puede incluir varios tipos de registros:

Tipo de Registro. Descripción.

A (Address) Registro de dirección que resuelve un nombre de un anfitrión hacia una dirección IPv4 de 32 bits.

AAAA Registro de dirección que resuelve un nombre de un anfitrión hacia una dirección IPv6 de 128 bits.

Page 163: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 163

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Tipo de Registro. Descripción.

CNAME (Canonical Name)

Registro de nombre canónico que hace que un nombre sea alias de otro. Los dominios con alias obtiene los sub-dominios y registros DNS del dominio original.

MX (Mail Exchanger) Registro de servidor de correo que sirve para definir una lista de servidores de correo para un dominio, así como la prioridad entre éstos.

PTR (Pointer) Registro de apuntador que resuelve direcciones IPv4 hacia el nombre anfitriones. Es decir, hace lo contrario al registro A. Se utiliza en zonas de Resolución Inversa.

NS (Name Server) Registro de servidor de nombres que sirve para definir una lista de servidores de nombres con autoridad para un dominio.

SOA (Start of Authority)

Registro de inicio de autoridad que especifica el Servidor DNS Maestro (o Primario) que proporcionará la información con autoridad acerca de un dominio de Internet, dirección de correo electrónico del administrador, número de serie del dominio y parámetros de tiempo para la zona.

SRV (Service)

Registro de servicios que especifica información acerca de servicios disponibles a través del dominio. Protocolos como SIP (Session Initiation Protocol) y XMPP (Extensible Messaging and Presence Protocol) suelen requerir registros SRV en la zona para proporcionar información a los clientes.

TXT (Text)

Registro de texto que permite al administrador insertar texto arbitrariamente en un registro DNS. Este tipo de registro es muy utilizado por los servidores de listas negras DNSBL (DNS-based Blackhole List) para la filtración de Spam. Otro ejemplo de uso son las VPN, donde suele requerirse un registro TXT para definir una llave que será utilizada por los clientes.

Las zonas que se pueden resolver son:

Zonas de Reenvío. Devuelven direcciones IP para las búsquedas hechas para nombres FQDN (Fully Qualified Domain Name).

En el caso de dominios públicos, la responsabilidad de que exista una Zona de Autoridad para cada Zona de Reenvío corresponde a la autoridad misma del dominio, es decir, y por lo general, quien esté registrado como autoridad del dominio tras consultar una base de datos WHOIS. Quienes compran dominios a través de un NIC (por ejemplo ejemplo: www.nic.mx) son quienes se hacen cargo de las Zonas de Reenvío, ya sea a través de su propio Servidor DNS o bien a través de los Servidores DNS de su ISP. Salvo que se trate de un dominio para uso en una red local, todo dominio debe ser primero tramitado con un NIC como requisito para tener derecho legal a utilizarlo y poder propagarlo a través de Internet.

Page 164: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

164

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Zonas de Resolución Inversa.

Devuelven nombres FQDN (Fully Qualified Domain Name) para las búsquedas hechas para direcciones IP. En el caso de segmentos de red públicos, la responsabilidad de que exista de que exista una Zona de Autoridad para cada Zona de Resolución Inversa corresponde a la autoridad misma del segmento, es decir, y por lo general, quien esté registrado como autoridad del segmento tras consultar una base de datos WHOIS. Los grandes ISP, y en algunos casos algunas empresas, son quienes se hacen cargo de las Zonas de Resolución Inversa.

11.4 CONFIGURACIÓN DEL SERVIDOR DNS

Para configurar el servidor DNS BIND se puede realizar creando el archivo /etc/named.conf manualmente, pero para facilitar su configuración recomendamos el uso de la herramienta de configuración Sistema de nombre de dominio (system-config-bind).

11.4.1. Archivo /etc/named.conf

Es una colección de sentencias que están encerradas entre llaves { }, y terminan con punto y coma. No edite manualmente el archivo /etc/named.conf o cualquiera de los archivos del

directorio /var/named/ si esta usando la herramienta de configuración Sistema de nombre de dominio. Cualquier cambio manual a estos será sobrescrito la siguiente vez que use la herramienta de configuración Sistema de nombre de dominio.

11.4.2. Configuración del servidor BIND DNS

Haga clic en el menú Sistema del panel superior, luego en Administración, luego en Configuración de servidores, luego en Sistema de nombres de dominio. Se mostrara la imagen inferior, luego haga clic en el botón Aceptar.

Page 165: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 165

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

La siguiente imagen muestra configuración de los archivos de zona predeterminados.

Guarde los cambios haciendo clic en Guardar, se creara el archivo /etc/named.conf usando los archivos de zona ubicados en el directorio /var/named/

Page 166: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

166

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Ahora tenemos el servidor BIND DNS en su configuración básica para que funcione como servidor BIND DNS de solo-caché debemos agregar la sentencia allow-query para permitir las peticiones de consulta de los clientes DNS (resolvers).

Seleccione Servidor DNS y luego haga clic en el botón Propiedades, se mostrara la imagen inferior:

En la vista superior derecha seleccionar la opción allow-query, luego hacer clic

en el botón +. En la vista inferior derecha seleccionar Dirección IPv4, luego llene los campos

de la lista, agregando la dirección de red y luego haga clic en el botón Añadir. Haga clic en el botón Aplicar y luego en el botón Aceptar. Guarde los cambios haciendo clic en Guardar.

Page 167: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 167

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Se mostrar el siguiente mensaje, clic en Si.

Luego se visualiza el siguiente mensaje, clic en Aceptar.

Otra forma de iniciar el servidor DNS es ejecutando el siguiente comando:

/etc/init.d/named start

11.4.3. Configuración del Firewall local

En forma predeterminada el equipo tiene configurado un Firewall personal que permite que el equipo se conecta hacia fuera sin ninguna restricción pero cualquier petición de acceso al equipo es denegada.

Page 168: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

168

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Para que las peticiones al servidor DNS de solo-caché puedan ingresar al equipo debemos configurar el Firewall local, permitiendo únicamente que las peticiones al puerto 53 usando los protocolos TCP y UDP estén permitidas. Haga clic en el menú Sistema del panel superior, luego en Administración, luego en Nivel de seguridad y cortafuegos. Se mostrara la imagen inferior: Clic en la pestaña Opciones de Cortafuegos. Clic en la opción Otros puertos. Clic en el botón Añadir.

Ingrese el número de puerto 53 y elija el protocolo TCP, luego clic en el botón

Aceptar.

Repita este paso para configurar puerto 53, protocolo UDP.

Se mostrara la siguiente imagen:

Page 169: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 169

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Haga clic en el botón Aplicar y luego en el botón Aceptar.

11.4.4. Configuración del cliente DNS (resolver) Para configurar el cliente DNS en un equipo Linux solo se debe modificar el archivo /etc/resolv.conf y agregar la siguiente entrada:

nameserver ip_servidor_dns

Page 170: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

170

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

En el caso de que el equipo cliente tenga instalado Windows:

Seleccione el icono Mis sitios de red, haga clic derecho y seleccione

Propiedades del menú de opciones. Luego haga clic sobre Conexión de área local y seleccione la opción

Propiedades. Seleccione la opción Protocolo Internet (TCP/IP) de la lista y haga clic en la

opción Propiedades. Elija la opción Usar las siguientes direcciones de servidor DNS e ingrese la

dirección IP de su nuevo servidor DNS en la caja Servidor DNS preferido. Presione el botón Aceptar y nuevamente clic en el botón Aceptar, cierre la

ventana Conexiones de red.

Page 171: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 171

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

11.5 CONSULTAS A LOS SERVIDORES DNS 11.5.1 Comando host

Herramienta que permite realizar consultas a los servidores de nombre.

11.5.2 Comando dig Herramienta que permite actualizar el archivo de zona named.ca y realizar consultas DNS.

Page 172: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

172

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

11.5.2 Comando nslookup Permite realizar consultas interactivas a los servidores DNS.

debian:~# nslookup

> server a.root-servers.net

Default server: a.root-servers.net

Address: 198.41.0.4#53

> set q=ns

> edu.pe.

Server: a.root-servers.net

Address: 198.41.0.4#53

Non-authoritative answer:

*** Can't find edu.pe.: No answer

Authoritative answers can be found from:

pe nameserver = NS-PE.RIPE.NET.

pe nameserver = ICHU.RCP.NET.pe.

pe nameserver = EKEKO.RCPIP.NET.

ICHU.RCP.NET.pe internet address = 161.132.5.14

EKEKO.RCPIP.NET internet address = 209.45.127.2

NS-PE.RIPE.NET internet address = 193.0.12.173

> server NS-PE.RIPE.NET

Default server: NS-PE.RIPE.NET

Address: 193.0.12.173#53

Default server: NS-PE.RIPE.NET

Address: 2001:610:240:0:53:cc:12:173#53

> set q=ns

> cibertec.edu.pe

Server: NS-PE.RIPE.NET

Address: 193.0.12.173#53

Non-authoritative answer:

*** Can't find cibertec.edu.pe: No answer

Authoritative answers can be found from:

cibertec.edu.pe nameserver = NS3.FIRSTCOM.COM.pe.

cibertec.edu.pe nameserver = DNSCIB.cibertec.edu.pe.

cibertec.edu.pe nameserver = NS3.ATTLA.COM.pe.

DNSCIB.cibertec.edu.pe internet address = 200.0.119.61

> server NS3.FIRSTCOM.COM.pe

Default server: NS3.FIRSTCOM.COM.pe

Address: 200.14.241.36#53

> set q=any

> cibertec.edu.pe

Server: NS3.FIRSTCOM.COM.pe

Address: 200.14.241.36#53

cibertec.edu.pe nameserver = ns3.firstcom.com.pe.

cibertec.edu.pe nameserver = dnscib.cibertec.edu.pe.

cibertec.edu.pe nameserver = ns3.attla.com.pe.

cibertec.edu.pe

origin = dnscib.cibertec.edu.pe

mail addr = root.upc.edu.pe

serial = 3034526519

refresh = 120

retry = 900

expire = 1200

minimum = 1200

Page 173: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 173

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

cibertec.edu.pe mail exchanger = 10 fenix-si.cibertec.edu.pe.

cibertec.edu.pe mail exchanger = 5 antispamsi.cibertec.edu.pe.

> set q=mx

> cibertec.edu.pe

Server: NS3.FIRSTCOM.COM.pe

Address: 200.14.241.36#53

cibertec.edu.pe mail exchanger = 10 fenix-si.cibertec.edu.pe.

cibertec.edu.pe mail exchanger = 5 antispamsi.cibertec.edu.pe.

> exit

debian:~#

Solo digite el texto que se encuentra resaltado en negrita.

11.6 CONFIGURACIÓN DEL SERVIDOR DNS PRIMARIO

Para esta configuración tendremos que plantear un escenario ficticio: Nombre del dominio: vasquez.com.pe Servidores DNS proporcionados por nuestro ISP: 200.48.225.130, 200.48.225.146 Puerta de enlace: 192.168.1.1

11.6.1. Creación de una nueva zona directa

Haga clic en el menú Sistema del panel superior, luego en Administración, luego en Configuración de servidores, luego en Sistema de nombres de dominio. Clic en Nuevo.

Page 174: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

174

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Seleccionar el elemento a agregar, en este caso Zona.

En la sección Clase clic en Aceptar.

Ingrese el nombre del domino, clic en Aceptar.

Page 175: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 175

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Se mostrara los parámetros de la zona, clic en Aceptar.

Page 176: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

176

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Se mostrara la venta principal de configuración Clic en Guardar.

11.6.2 Configurando la zona 11.6.2.1. Agregando un nuevo Registro de Recurso (RR)

Seleccione el dominio. Clic en Nuevo.

Page 177: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 177

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

11.6.2.2.Agregando un nuevo host

Clic en A Dirección IPv4 Se mostrara una nueva ventana Ingrese el Nombre de dominio totalmente calificado (FQDN), por ejemplo

para el servidor Web: server1.vasquez.com.pe.

Page 178: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

178

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Marcando la casilla Crear Record de mapeo inverso se creara la zona inversa.

Clic en Guardar.

11.6.2.3 Agregando un nuevo alias

Clic en CNAME Alias Se mostrara una nueva ventana Ingrese el alias en la casilla Nombre de Dominio. Ingrese el Nombre de dominio totalmente calificado (FQDN) en la casilla

Nombre Canónico. Clic en Aceptar.

Page 179: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 179

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Se mostrara la ventana principal. Clic en Guardar.

Luego finalizada la configuración se crearan en el directorio /var/named los siguientes archivos: o vasquez.com.pe.db – Archivo de zona directa o 192.168.1.db – Archivo de zona inversa

Page 180: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

180

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

11.6.2.4 Consultas al servidor DNS Primario

Desde un equipo cliente ejecutamos los comandos mostrados en la figura inferior para comprobar el funcionamiento del servidor DNS Primario.

Page 181: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 181

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Autoevaluación

Según lo expuesto en clase, de un ejemplo de cómo usar el servidor DNS Primario.

Page 182: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

182

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 183: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 183

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

SERVIDOR DHCP

TEMA Entender e implementar el servidor DHCP

OBJETIVOS ESPECÍFICOS

Comprender el funcionamiento del servidor DHCP

CONTENIDOS

Introducción

Configuración de un servidor DHCP

Configuración de cliente DHCP

UNIDAD

12

Page 184: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

184

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 185: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 185

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

12.1 INTRODUCCIÓN

DHCP (acrónimo de Dynamic Host Configuration Protocol que se traduce Protocolo de configuración dinámica de servidores) es un protocolo que permite a dispositivos individuales en una red de direcciones IP obtener su propia información de configuración de red (dirección IP; máscara de sub-red, puerta de enlace, etc.) a partir de un servidor DHCP. Su propósito principal es hacer más fáciles de administrar las redes grandes. DHCP existe desde 1993 como protocolo estándar y se describe a detalle en el RFC 2131.

Sin la ayuda de un servidor DHCP, tendrían que configurarse de forma manual cada dirección IP de cada anfitrión que pertenezca a una Red de Área Local. Si un anfitrión se traslada hacia otra ubicación donde existe otra Red de Área Local, se tendrá que configurar otra dirección IP diferente para poder unirse a esta nueva Red de Área Local. Un servidor DHCP entonces supervisa y distribuye las direcciones IP de una Red de Área Local asignando una dirección IP a cada anfitrión que se una a la Red de Área Local. Cuando, por mencionar un ejemplo, una computadora portátil se configura para utilizar DHCP, a ésta le será asignada una dirección IP y otros parámetros de red necesarios para unirse a cada Red de Área Local donde se localice.

Existen tres métodos de asignación en el protocolo DHCP:

• Asignación manual: La asignación utiliza una tabla con direcciones MAC (acrónimo de Media Access Control Address, que se traduce como dirección de Control de Acceso al Medio). Sólo los anfitriones con una dirección MAC definida en dicha tabla recibirá el IP asignada en la misma tabla. Ésto se hace a través de los parámetros hardware ethernet y fixed-address.

• Asignación automática: Una dirección de IP disponible dentro de un rango determinado se asigna permanentemente al anfitrión que la requiera.

• Asignación dinámica: Se determina arbitrariamente un rango de direcciones IP y cada anfitrión conectado a la red está configurada

Page 186: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

186

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

para solicitar su dirección IP al servidor cuando se inicia el dispositivo de red, utilizando un intervalo de tiempo controlable (parámetros default-lease-time y max-lease-time) de modo que las direcciones IP no son permanentes y se reutilizan de forma dinámica.

12.2 CONFIGURACIÓN DE UN SERVIDOR DHCP EN LINUX Se requiere instalar el paquete dhcp el cual deberá estar incluido en los discos de instalación de la mayoría de las distribuciones.

yum -y install dhcp

Si se utiliza Red Hat™ Enterprise Linux, solo bastará realizar lo siguiente para instalar o actualizar la programática necesaria:

up2date -i dhcp

12.3 DHCP – FICHERO DE CONFIGURACIÓN

Considerando como ejemplo que se tiene una red local con las siguientes características:

• Número de red 192.168.0.0

• Máscara de sub-red: 255.255.255.0

• Puerta de enlace: 192.168.0.1

• Servidor de nombres: 192.168.0.1, 148.240.241.42 y 148.240.241.10

• Servidor Wins: 192.168.0.1

• Servidores de tiempo: 66.187.224.4 y 66.187.233.4

• Rango de direcciones IP a asignar de modo dinámico: 192.168.0.11-192.168.0.199

Puede utilizar el siguiente contenido para crear desde cero el fichero /etc/dhcpd.conf.

ddns-update-style interim; ignore client-updates; shared-network miredlocal { subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option domain-name "redlocal.net"; option domain-name-servers 192.168.0.1, 148.240.241.42,

Page 187: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 187

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

148.240.241.10; option netbios-name-servers 192.168.0.1; option ntp-servers 66.187.224.4, 66.187.233.4; range 192.168.0.11 192.168.0.199; default-lease-time 21600; max-lease-time 43200; } host m253 { option host-name "m253.redlocal.net"; hardware ethernet 00:50:BF:27:1C:1C; fixed-address 192.168.0.253; } host m254 { option host-name "m254.redlocal.net"; hardware ethernet 00:01:03:DC:67:23; fixed-address 192.168.0.254; } }

Una buena medida de seguridad es hacer que el servicio de dhcpd solo funcione a través de la interfaz de red utilizada por la LAN, esto en el caso de tener múltiples dispositivos de red. Edite el fichero /etc/sysconfig/dhcpd y agregue como argumento del parámetro DHCPDARGS el valor eth0, eth1, eth2, etc., o lo que corresponda. Ejemplo, considerando que eth0 es la interfaz correspondiente a la LAN:

# Command line options here DHCPDARGS=eth0

Para ejecutar por primera vez el servicio, ejecute:

/sbin/service dhcpd start

Para hacer que los cambios hechos a la configuración surtan efecto, ejecute:

/sbin/service dhcpd restart

Para detener el servicio, ejecute:

/sbin/service dhcpd stop

Para añadir dhcpd al arranque del sistema, ejecute:

/sbin/chkconfig dhcpd on

Hecho lo anterior solo bastará con configurar como interfaces DHCP las estaciones de trabajo que sean necesarias sin importar que sistema operativo utilicen.

Page 188: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

188

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

12.4 CONFIGURACIÓN DE UN CLIENTE DHCP: Para hacer que una máquina linux use IPs dadas por una servidor DHCP basta indicarle que use IP dinámica, lo que se consigue poniendo las siguientes líneas en /etc/sysconfig/network-scripts/ifcfg-eth0: DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes También hay que comentar la línea GATEWAY=... en el fichero /etc/sysconfig/network

12.5 ARCHIVO DE REGISTRO En el servidor DHCP podemos apreciar la concesión de la dirección IP al equipo cliente DHCP ejecutando el siguiente comando:

tail –f /var/log/messages

Page 189: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 189

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Autoevaluación

1. El archivo /var/log/secure muestra conexiones repetidas al puerto TCP 53.

2. ¿Cuál es el nombre del servicio que esta siendo accedido?

Page 190: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

190

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 191: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 191

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

SERVIDOR WEB

TEMA Describir el uso del Servidor HTTP Apache.

OBJETIVOS ESPECÍFICOS

Comprender el funcionamiento del Servidor HTTP Apache.

CONTENIDOS

Introducción

Configuración del Servidor HTTP Apache.

UNIDAD

13

Page 192: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

192

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 193: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 193

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

13.1 INTRODUCCIÓN

El Servidor HTTP Apache es un servidor Web de tecnología Open Source sólido y para uso comercial desarrollado por la Apache Software Foundation, actualmente el proyecto se encuentra en la versión 2.2.4.

Página oficial: http://httpd.apache.org. Documentación en español: http://httpd.apache.org/docs/2.0/es/

Tiene una estructura modular, que permite agregar funciones que no se encuentran en el código fuente de Apache. Estos módulos pueden ser desarrollados por Apache o por terceros.

Adicionalmente se tiene que HTTP Apache registra el acceso de cada navegador web generando un hit (nombre del host, día, hora, pagina accedida) en el archivo access.log. Cualquier problema con el servidor HTTP Apache se registra en el archivo error.log.

13.2. INSTALACIÓN DEL SERVIDOR HTTP APACHE

HTTP Apache se puede instalar tanto en Linux como en Windows 2000/2003, para el caso específico de Linux se deben instalar los siguientes paquetes: httpd – Potente, eficiente y extensible servidor web. httpd-manual – Paquete que contiene el manual y la guía de referencia para el

servidor HTTP Apache.

Page 194: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

194

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

system-config-httpd – Herramienta de configuración para el servidor HTTP Apache.

Activamos el demonio httpd:

/etc/init.d/httpd start No olvidar permitir en el Firewall local las peticiones de acceso al servidor HTTP

Apache.

Desde un equipo cliente podemos cargar la página web predeterminada.

Page 195: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 195

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

13.3 CONFIGURACIÓN DEL SERVIDOR HTTP APACHE El archivo /etc/httpd/conf/httpd.conf es el archivo de configuración del servidor HTTP Apache, donde podemos:

Definir las direcciones IP/números de puertos. Módulos. Archivos de registro. Definir el usuario que inicia el servidor. Control de acceso. Mensajes de error. Hosts virtuales, etc. Para realizar los respectivos cambios utilizar cualquier editor de textos (vi, emacs, etc.) Este archivo es bastante extenso, por este motivo está dividido en tres secciones principales: Section 1: Global Environment Section 2: ‘Main’ Server Configuration Section 3: Virtual Hosts En forma predeterminada después de la instalación el servidor HTTP Apache tiene la configuración básica que le permite funcionar.

Page 196: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

196

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

### Section 1: Global Environment

# ServerRoot: The top of the directory tree under which the server's

# configuration, error, and log files are kept.

ServerRoot "/etc/httpd"

# PidFile: The file in which the server should record its process

# identification number when it starts.

PidFile run/httpd.pid

# Listen: Allows you to bind Apache to specific IP addresses and/or

# ports, in addition to the default.

Listen 80

# User/Group: The name (or #number) of the user/group to run httpd as.

User apache

Group apache

### Section 2: 'Main' server configuration

# ServerAdmin: Your address, where problems with the server should be

# e-mailed. This address appears on some server-generated pages, such

# as error documents. e.g. [email protected]

ServerAdmin root@localhost

# DocumentRoot: The directory out of which you will serve your

# documents. By default, all requests are taken from this directory, but

# symbolic links and aliases may be used to point to other locations.

DocumentRoot "/var/www/html"

# DirectoryIndex: sets the file that Apache will serve if a directory

# is requested.

DirectoryIndex index.html index.html.var

# ErrorLog: The location of the error log file.

ErrorLog logs/error_log

# LogLevel: Control the number of messages logged to the error_log.

# Possible values include: debug, info, notice, warn, error, crit,

# alert, emerg.

LogLevel warn

# The location and format of the access logfile (Common Logfile Format).

CustomLog logs/access_log combined

### Section 3: Virtual Hosts

No olvidar configurar el servidor ISC BIND para poder usar el nombre de domino

www.vasquez.com.pe.

13.4 PAGINA WEB PREDETERMINADA

La pagina predeterminada index.html para el acceso al servidor web debe estar ubicada en el directorio /var/www/html/. Con un editor de textos crearemos nuestra propia página web, por ejemplo: vi /var/www/html/index.html

<html>

<body>

<p align=center><font size=8>Funciona!!!</font></p>

</body>

</html>

Page 197: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 197

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

13.5 ARCHIVOS DE REGISTRO En el servidor HTTP Apache podemos apreciar que equipos se conectan al servidor ejecutando el siguiente comando:

tail –f /var/log/httpd/access_log

En caso de algún error en el servidor podemos ejecutar el comando:

tail –f /var/log/httpd/error_log

Page 198: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

198

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Ejercicio 1: Crear una segunda página web en el directorio /var/www/html/datos/ y probar el acceso.

Anote sus observaciones:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Page 199: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 199

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

13.6 VIRTUAL HOSTS El término Hosts Virtuales se refiere al hecho de mantener más de un servidor en una misma máquina, diferenciando se únicamente por su nombre de dominio. Por ejemplo: www.cibertec.com.pe y www.cibertec.org.pe con la misma dirección IP. Obviamente estos nombres deben estar registrados en el servidor DNS.

13.6 CONFIGURACIÓN DE LOS HOSTS VIRTUALES

Paso 1. Apache identifica un host virtual con el parámetro NameVirtualHost, la IP indicada será tomada como referencia para realizar la búsqueda de sitios virtuales en las secciones definidas para cada sitio empiezan con <VirtualHost ip> y finaliza con </VirtualHost>.

### Section 3: Virtual Hosts

NameVirtualHost 192.168.1.3

<VirtualHost 192.168.1.3>

ServerName www.vasquez.com.pe

DocumentRoot /var/www/html/

</VirtualHost>

<VirtualHost 192.168.1.3>

ServerName www.vasquez.org.pe

DocumentRoot /var/www/html1/

</VirtualHost>

Paso 2. Crear el directorio /var/www/html1

Paso 3. Con un editor de textos crearemos nuestra propia página web, por ejemplo: vi /var/www/html1/index.html

<html>

<body>

<p align=center><font size=8>Funciona Host Virtual!!!</font></p>

</body>

</html>

Paso 4. Configuración del servidor DNS primario para agregar dominio vasquez.org.pe,

y agregar el registro correspondiente

Page 200: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

200

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Paso 5. Reiniciar los demonios: named y hhtpd.

Paso 6. Probar desde un equipo cliente el acceso al servidor web

Page 201: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 201

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Ejercicio 2: Crear una segunda página web en el directorio /var/www/html2 y probar el acceso.

Anote sus observaciones:

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Page 202: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

202

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Autoevaluación

1. El archivo /var/log/secure muestra conexiones repetidas al puerto TCP 53.

¿Cuál es el nombre del servicio que esta siendo accedido? (a) imap

(b) smbd (c) domain

(d) pop3

2. ¿Cuál es el archivo de configuración del servidor Web? (a) httpd.conf

(b) apache.conf

(c) web.conf

(d) http.conf

3. El servidor web acepta peticiones al puerto 80 ¿qué directiva debemos modificar par que ahora solo acepte peticiones la puerto 8080? (a) Ports

(b) Listen (c) ServerDocument

(d) ServerRoot

4. Si deseo permitir el acceso al servidor web ¿qué protocolo debo seleccionar en el cortafuegos? (a) smtp

(b) imap (c) pop3

(d) http

Page 203: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 203

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

SERVIDOR DE CORREO

TEMA Describir e implementar el uso de de un servidor de correo

OBJETIVOS ESPECÍFICOS

Comprender el funcionamiento de un servidor.

Configuración del servicio de correo en Linux con Postfix

CONTENIDOS

Introducción

Funcionamiento

Configuración

UNIDAD

14

Page 204: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

204

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Page 205: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 205

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

14.1 INTRODUCCIÓN

Los servidores de Correos están basados en una estructura Cliente/Servidor y consta de:

Los Agentes de Transporte o MTA (Mail Transport Agent), que son los encargados de transferir los mensajes a su correcto destino. Evolution, Mozilla Mail, Thunderbird, y Mutt, son usados para leer y redactar mensajes.

Los Agentes de Usuario o MUA (Mail User Agent) que tienen como propósito el aislar al usuario de los Agentes de Transporte. Sendmail, Postfix, y Exim son los MTA’s proporcionados por CentOS.

En Software Libre se tiene que el servidor de Correos consta de los siguientes elementos mínimos: Servidor SMTP (Simple Mail Transfer Protocol)

o Proporciona un método para transferir correos sobre un protocolo de transporte como el TCP/IP.

o Protocolo utilizado para el envío de mensajes a otros servidores de SMTP y la recepción de los mensajes de los usuarios.

o El puerto que habilita es el 25. Servidor POP3 (Post Office Protocol)

o Permite recuperar el correo al MUA, pero este se almacenará localmente en el disco duro de las máquinas de los usuarios.

o La entrega de los mensajes a los clientes del servidor es mediante un acceso autenticado.

o El puerto que habilita es el 110. Servidor IMAP (Internet Message Access Protocol).

o Es un protocolo con más opciones a comparación de POP3, soporta algunas características que no están incluidas en POP, como la manipulación de múltiples carpetas remotas, visualizar correos sin necesidad de bajarlo del servidor.

o Facilita la utilización de webmails (servicios de correo basado sobre web). o El puerto que habilita es el 143.

14.2 INSTALACIÓN

Para tener funcionando el servidor de Correos se deben instalar los siguientes paquetes:

postfix – MTA (Mail Transport Agent). Servidor SMTP. dovecot – Servidor IMAP/POP3.

14.3 CONFIGURACIÓN 14.3.1.Configuración Postfix

Postfix tiene dos archivos de configuración los cuales son: /etc/postfix/master.cf

Este archivo contiene la configuración para los procesos maestros de Postfix. Cada línea indica como un componente debe funcionar

/etc/postfix/main.cf

Page 206: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

206

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Es el archivo principal, donde reside el corazón del funcionamiento de Postfix. No tiene una estructura concreta, por lo que se recomienda analizar con mayor detalle las directivas según sus propias necesidades.

Paso 1. Agregue las siguientes líneas en el archivo /etc/postfix/main.cf

# Parámetros configurables por el usuario

myhostname = centos.vasquez.com.pe

mydomain = vasquez.com.pe

myorigin = $mydomain

mynetworks = 192.168.1.0/24, 127.0.0.0/8

inet_interfaces = all

Paso 2. Desactivar el MTA Sendmail en el arranque del sistema.

Paso 3. Activar el MTA Postfix en el arranque del sistema.

Paso 4. Iniciar el servidor SMTP: /etc/init.d/postfix start

Page 207: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 207

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

14.3.2 Configuración dovecot

Paso 1. El archivo de configuración es /etc/dovecot.conf, agregue la siguiente

línea:

protocols = imap pop3

Paso 2. Iniciar el servidor SMTP: /etc/init.d/dovecot start

14.3.3 Configuración Firewall local

Habilitar los puertos: SMTP (25) y POP3 (110)

Page 208: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

208

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

14.3.4 Configuración del MUA Se usar el programa KMail como cliente de correo.

Paso 1. Haga clic en el programa KMail, se mostrara la siguiente imagen.

Paso 2. Selecciones el tipo de cuenta POP3, luego clic en el botón Siguiente.

Paso 3. Ingrese los datos correspondiente en cada casilla, luego clic en el botón Siguiente.

Page 209: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 209

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Paso 4. Ingrese el nombre de la cuenta de usuario y la contraseña, luego clic en

el botón Siguiente.

Paso 4. Ingrese la dirección IP de los servidores: entrante (SMTP) y saliente (POP3), luego clic en el botón Finalizar.

Se mostrara la siguiente imagen.

Page 210: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

210

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

COMPROBANDO EL FUNCIONAMIENTO DEL SERVIDOR DE CORREOS

Paso 1. Enviar un mensaje usando el comando mail (sistema de

procesamiento de correo inteligente que permite enviar y recibir mensajes).

Paso 2. Ver en el archivo de registro las transacciones del servidor SMPT. tail –f /var/log/maillog

Page 211: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 211

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

Paso 3. Desde el cliente de correo haga clic en Comprobar correo en, luego podremos ver en el archivo de registro las transacciones del servidor POP3.

tail –f /var/log/maillog

Page 212: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

212

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

14.4 RESTRICCIONES

Para evitar que nuestro servidor de correos sea usado para hacer SPAM o sea usado como Open Relay tenemos las siguientes restricciones:

Restricciones del emisor (smtpd_sender_restrictions). Restricciones de nombre/dirección cliente (smtpd_client_restrictions). Uso del comando HELO (smtpd_helo_required y smtpd_helo_restrictions). Restricciones del destinatario (smtpd_recipient_restrictions).

o Restricciones UCE.

14.4.1 Restricciones del emisor

El parámetro smtpd_sender_restrictions restringe las direcciones que el sistema acepta cuando se ingresa el comando MAIL FROM.

Una configuración típica en el main.cf sería: smtpd_sender_restrictions = hash:/etc/postfix/access,

permit_mynetworks,

reject_unknown_address

Las listas de control de acceso (ACL), son las direcciones de e-mail que NO pueden enviar correo a nuestro servidor. Contenido del archivo /etc/postfix/access: [email protected] REJECT

techmail.com REJECT

Cada vez que se modifica el archivo /etc/postfix/access debemos ejecutar:

postmap hash:/etc/postfix/access postfix reload

14.4.2 Restricciones de nombre/dirección cliente

Parámetro que restringe desde que clientes este sistema acepta conexiones SMTP. Las listas de bloqueo son unas listas de IP de servidores que supuestamente envían spam. Entre las listas más usadas se encuentran las RBL de mail-abuse.org o las SBL de spamhaus.org. Una configuración típica en el main.cf sería: smtpd_client_restrictions = hash:/etc/postfix/access,

reject_maps_rbl

maps_rbl_domains = rbl.maps.vix.com,

relays.orbd.org,

sbl.spamhaus.org

Page 213: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 213

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

14.4.3 Uso del comando HELO

El parametro smtpd_helo_required determina si los clientes deben enviar un HELO (o EHLO) al servidor antes de comenzar una sesión SMTP. El parámetro smtpd_helo_restrictions restringe aquellos hosts que pueden enviar el comando HELO. Una configuración típica en el main.cf sería:

smtpd_delay_reject = yes

smtpd_helo_required = yes

smtpd_helo_restrictions = permit_mynetworks,

reject_invalid_hostname,

reject_unknown_hostname,

reject_non_fqdn_hostname

14.4.4 Restricciones del destinatario

El parámetro smtpd_recipient_restrictions restringe los recipientes o destinatarios que acepta el Servidor de Correos cuando se ejecuta RCPT TO.

smtpd_recipient_restrictions = permit_mynetworks,

reject_unauth_destination,

reject_rbl_client relays.orbd.org,

reject_rbl_client list.dsbl.org,

reject_rbl_client sbl-xbl.spamhaus.org

14.5 COMANDOS 14.5.1 postqueue

Controla la cola de Postfix

Sintaxis:

postqueue -f postqueue -p

Donde:

-f Intenta entregar todos los mensajes que se encuentran en la cola de mensajes.

-p Lista los mensajes que se encuentran en la cola de mensajes.

Page 214: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

214

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

14.5.2.postsuper

Gestiona las tareas en la cola Postfix.

Sintaxis:

postsuper –d id_cola postsuper –h id_cola

postsuper –H id_cola

Donde: -d Borra un mensaje que se encuentra en la cola Postfix.

Especifique –d ALL para borrar todos los mensajes.

-h Mueve un mensaje a la cola hold. Especifique –h ALL para mover todos los mensajes.

-H Mueve un mensaje de la cola hold a la cola deferred. Especifique –H ALL para mover todos los mensajes.

Page 215: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

SISTEMAS OPERATIVOS ABIERTOS 215

CIBERTEC CARRERA DE REDES Y COMUNICACIONES

14.5.3.postconf

Utilitario de configuración que muestra información referente al sistema de correo Postfix.

Autoevaluación

Establecer diferencias entre postfix, sendmail,, zimbra, y aplicaciones así como clientes de correo más utilizados en el medio empresarial.

Page 216: Manual 2013-I 03 Sistemas Operativos Abiertos (1383)

216

CARRERA DE REDES Y COMUNICACIONES CIBERTEC

Bibliografía digital

http://www,redhat.com Página Web de Red Hat http://www.europe.redhat.com/ Página Web de Red Hat Europa http://www.wikilearning.com/ Comunidad Wiki http://www.linuxparatodos.net Linux Para Todos - Factor Evolución http://www.tercerainformacion.es/spip.php?article15580 Linux utilizado por el 78% de los servidores principales del mundo http://www.alcancelibre.org/staticpages/index.php/manuales-indice Manual de Linux