• No se han encontrado resultados

Memoria Pfc Superior

N/A
N/A
Protected

Academic year: 2021

Share "Memoria Pfc Superior"

Copied!
184
0
0

Texto completo

(1)

Ingenier´ıa Inform´

atica

Escuela T´ecnica Superior de Ingenier´ıa Inform´atica Curso acad´emico 2007-2008

Proyecto Fin de Carrera

INSTALACI ´

ON, CONFIGURACI ´

ON Y ADMINISTRACI ´

ON

DE AULAS INFORM ´

ATICAS MEDIANTE SOFTWARE

LIBRE

Autor: Antonio Guti´errez Mayoral Tutor: Jose Centeno Gonz´alez

(2)
(3)
(4)
(5)

Gracias

La finalizaci´on de un proyecto fin de carrera normalmente lleva asociado el fin de una etapa y el comienzo de otra. En particular, este proyecto resume pr´acticamente los ´ultimos dos a˜nos trabajando en el GSyC en la administraci´on de sus laboratorios docentes. Un par de a˜nos en los que he trabajado en un entorno de trabajo que creo que puede considerarse privilegiado y que cualquier persona podr´ıa envidiar.

A trav´es de este peque˜no texto quiero agradecer al Grupo de Sistemas y Comunicaciones el facilitarme un entorno de trabajo envidiable, y del que me acordar´e siempre, sobre todo si alg´un d´ıa ya no estoy aqu´ı. A Jose Centeno y Pedro de las Heras por confiar en m´ı y creer en m´ı como aqu´el que podr´ıa realizar el trabajo que intento hacer todos los d´ıas con la m´axima ilusi´on posible. Gracias tambi´en a Sergio Ar´evalo y Jes´us Gonz´alez Barahona como directores del Departamento y estar ah´ı siempre que lo he necesitado, ayud´andome siempre que han podido. Gracias tambi´en a todo el Grupo por el capital humano aportado y por hacerme sentir en uno de los mejores entornos de trabajo que he estado.

Gracias a mis compa˜neros de Universidad sin los cuales el d´ıa a d´ıa ser´ıa mucho m´as amargo y aburrido. Gracias a Lorena, Juan Carlos, Carlos, Tamara, Fran, Javi, Marina, Bel´en y todos los dem´as.

Gracias a mi familia, a mis padres y mi hermano, ya que sin su apoyo y confianza nada de esto hubiera sido posible.

A todos, gracias.

(6)
(7)

Resumen

Hoy en d´ıa la administraci´on de sistemas se ha convertido en un aspecto fundamental en cualquier entorno inform´atico. En la empresa esta responsabilidad es clara, donde la alta disponibilidad de los sistemas es b´asica para su operabilidad. De la misma manera, en cualquier entorno docente es fundamental la puesta en marcha de todas aquellas tecnolog´ıas necesarias para permitir a los alumnos realizar sus pr´acticas y a los profesores impartir sus asignaturas. A veces esta tarea no es tan f´acil como parece a simple vista: requiere de conocimientos avanzados de redes, sistemas operativos y administraci´on de sistemas.

Por otro lado, el avance del Software Libre como modelo de desarrollo de software adem´as de como alternativa para la docencia hace muy atractivo su uso de cara a las diferentes materias que pueden ser impartidos en una carrera de Ingenier´ıa Inform´atica, ya que su flexibilidad y los conceptos sobre los que se sustenta el Software Libre hacen que se pueda adaptar muy f´acilmente a ellas. En particular, la puesta en marcha de una serie de tecnolog´ıas relacionadas con la administraci´on del sistema Linux resultan b´asicas para que se pueda usar este Sistema Operativo en un entorno docente.

En este proyecto se ha llevado a cabo un an´alisis de las diferentes tecnolog´ıas que son necesarias para el funcionamiento de un entorno de estas caracter´ısticas. Por un lado, es necesario establecer un plan o mecanismo que facilite la labor de los administradores de cara a la instalaci´on de un n´umero elevado de estaciones de usuario. Para ello, se implementar´a un mecanismo de instalaciones autom´aticas completamente desatendidas que facilite esta labor.

Por otro lado, tambi´en se hace necesaria la implantaci´on de un servicio que facilite que los usuarios puedan iniciar una sesi´on en el entorno a partir de unas credenciales determinadas (normalmente un par formado por el nombre de usuario y contrase˜na), as´ı como proporcionar un servicio de disco en red que facilite a los usuarios el poder almacenar sus ficheros personales a lo largo de toda la red local.

Estos dos objetivos principales son b´asicos para el funcionamiento del entorno, pero no son los ´

unicos. La adici´on de servicios adicionales al Laboratorio, como un servicio de correo electr´onico (entrega y recogida) as´ı como un sitio web bien documentado y funcional de cara a los alumnos van a hacer que ´este sea m´as agradable al uso diario. Servicios adicionales de cara a la gesti´on, como construir y documentar pol´ıticas de seguridad eficientes e instaurar un sistema de monitorizaci´on del estado de la red (que garantizar´an la r´apida detecci´on de incidencias y por tanto su resoluci´on), culmina el proyecto.

La realizaci´on de este proyecto supone la implantaci´on de un entorno totalmente funcional apto para la docencia de todas las pr´acticas de las asignaturas pertenecientes al Departamento de Sistemas Telem´aticos y Computaci´on, al mismo tiempo que consolidan amplios conocimientos en Sistemas Operativos de la familia GNU/Linux, as´ı como en un amplio abanico de aplicaciones de servidor, ampliamente usadas en entornos empresariales. La construcci´on adicional de aplicaciones web de gesti´on de todos los servicios que hemos implementado en este proyecto, as´ı como t´ecnicas avanzadas como la virtualizaci´on de servidores dejan la puerta abierta a trabajos futuros en la misma l´ınea de investigaci´on que el presente proyecto.

(8)
(9)

´Indice general

1. Introducci´on 3

1.1. Motivaci´on del proyecto . . . 4

1.2. Estructura de este documento . . . 4

1.3. Estado del arte . . . 4

1.3.1. Distribuciones de Linux . . . 5

1.3.2. Sistemas de instalaci´on desatendidos . . . 10

1.3.3. Sistemas de autenticaci´on de usuarios . . . 13

1.3.4. Sistemas de ficheros en red . . . 17

1.3.5. Servidores de correo electr´onico . . . 19

1.3.6. Sistemas de monitorizaci´on . . . 22

2. Objetivos 27 2.1. Sistema de instalaciones masivas y desatentidas . . . 28

2.2. Sistema de cuentas de usuario y disco en red . . . 28

2.3. Servicios adicionales . . . 29

2.4. Monitorizaci´on del sistema . . . 30

2.5. Pol´ıticas de seguridad . . . 31

2.6. Documentaci´on . . . 32

3. Especificaci´on y Dise˜no 33 3.1. Metodolog´ıa empleada . . . 34

3.2. An´alisis de requisitos . . . 34

3.2.1. Proceso de instalaci´on desatendido . . . 34

3.2.2. Cuentas de usuario en red y disco en red . . . 35

3.2.3. Servicios de valor a˜nadido . . . 35

3.3. Dedicaci´on de las m´aquinas f´ısicas . . . 36

3.3.1. Peloto . . . 37 3.3.2. Zipi . . . 37 3.3.3. Zape . . . 37 3.3.4. Lechuzo . . . 37 3.3.5. Sapientin . . . 37 3.3.6. Pantuflo . . . 38 3.3.7. Espatula . . . 38

3.4. Servidores disponibles en el Campus de Fuenlabrada . . . 38

3.4.1. Bilo . . . 39

3.4.2. Nano . . . 39 ix

(10)

´INDICE GENERAL ´INDICE GENERAL

4. Implantaci´on 41

4.1. Herramienta de Instalaci´on Autom´atica . . . 42

4.1.1. Servidor DHCP para configuraci´on autom´atica de Red . . . 43

4.1.2. Arranque por PXE . . . 44

4.1.3. Arranque por red de Linux . . . 46

4.1.4. Ficheros de preconfiguraci´on . . . 46

4.2. Protocolos situados en la capa de aplicaci´on . . . 52

4.2.1. Servidor LDAP de cuentas de usuario . . . 52

4.2.2. Servidor NFS de ficheros en red . . . 69

4.2.3. Servidor Web de los Laboratorios . . . 74

4.2.4. Servidor de correo electr´onico . . . 81

4.3. Otros servicios disponibles . . . 86

4.3.1. Listas de correo . . . 86

4.3.2. Mirror de Debian y Ubuntu . . . 89

4.4. Monitorizaci´on del Sistema . . . 90

4.4.1. Monitorizaci´on de servidores . . . 91

4.4.2. Monitorizaci´on de estaciones . . . 94

4.5. Seguridad . . . 95

4.5.1. Limitar los accesos remotos . . . 95

4.5.2. Auditor´ıa de usuarios . . . 97

4.5.3. Detecci´on de intrusos . . . 99

4.5.4. Ataques de fuerza bruta v´ıa SSH . . . 100

4.5.5. Seguridad en las contrase˜nas de los usuarios . . . 102

5. Conclusiones 105 5.1. Logros alcanzados . . . 106

5.2. Conocimientos adquiridos . . . 107

5.3. Trabajo futuro . . . 108

A. Scripts de Instalaci´on Autom´atica I A.1. Fichero de preconfiguraci´on gen´erico . . . ii

A.2. Configuraci´on Isolinux . . . v

A.3. Fichero de configuraci´on del servidor dhcp . . . vi

B. Scripts adicionales IX B.1. Scripts de copias de seguridad . . . x

B.1.1. De lechuzo a sapientin . . . x

B.1.2. De bilo a nano . . . x

B.1.3. De sapientin al disco USB . . . xi

B.1.4. De nano al disco USB . . . xi

B.2. Script de copia de seguridad del directorio LDAP . . . xii

B.3. Auditor´ıa de usuarios . . . xii

B.3.1. Creaci´on de la base de datos . . . xii

B.3.2. Inserci´on de los datos de auditor´ıa . . . xii

B.4. Scripts ssh-a-todos y scp-a-todos . . . xiii

B.4.1. Scripts ssh-a-todos . . . xiii

B.4.2. Scripts scp-a-todos . . . xiv

(11)

C. Ficheros de configuraci´on XXI

C.1. M´aquinas zipi y zape . . . xxii

C.1.1. Servidor LDAP. Fichero slapd.conf . . . xxii

C.1.2. Servidor DNS. Fichero named.conf y db.pantuflo.es para zipi . . . xxiv

C.1.3. Servidor DNS. Fichero named.conf para zape . . . xxxi

C.2. M´aquina pantuflo . . . xxxii

C.2.1. Fichero de configuraci´on de Apache . . . xxxii

C.2.2. Fichero de configuraci´on de Postfix . . . xxxv

C.2.3. Fichero de configuraci´on de Dovecot . . . xxxviii C.3. M´aquina lechuzo . . . li C.4. M´aquina peloto . . . lii C.5. M´aquina sapientin . . . lv C.6. M´aquina minervo . . . lv C.7. M´aquina espatula . . . lv C.8. M´aquina bilo . . . lv C.8.1. Servicio NFS en bilo . . . lvi C.9. M´aquina nano . . . lvi

(12)
(13)

´Indice de figuras

1.1. Interfaz web de Zabbix. Fuente: Wikipedia . . . 23

1.2. Representaci´on del uso de memoria en una m´aquina a trav´es de Munin. Fuente: Wikipedia . . . 25

4.1. El proceso de instalaci´on en Debian/Ubuntu y la preconfiguraci´on de paquetes. . . 50

4.2. La raiz del ´arbol LDAP contiene dos unidades organizativas principales: alumnos y profesores. . . 55

4.3. La unidad organizativa de alumnos se subdivide a su vez en otras dos: alumnos de M´ostoles y alumnos de Fuenlabrada. . . 55

4.4. La unidad organizativa de profesores contiene dos unidades organizativas que almacenan los objetos posixAccount y posixGroup. . . 56

4.5. La aplicaci´on wireshark muestra como se mandan los datos de autenticaci´on en claro entre cliente y servidor, con nuestro esquema actual. . . 60

4.6. Una vez establecida la conexi´on segura entre cliente y servidor LDAP resulta m´as dif´ıcil capturar datos de autenticaci´on de usuarios. . . 62

4.7. Reparto de carga entre varios servidores LDAP. . . 63

4.8. La aplicaci´on PHPLdapAdmin sobre nuestro esquema de servidores. . . 68

4.9. P´agina principal del Laboratorio de M´ostoles . . . 78

4.10. Autenticaci´on en la p´agina del Laboratorio mediante el directorio LDAP. . . 80

4.11. Webmail de pantuflo . . . 86

4.12. Webmail de bilo . . . 87

4.13. Gesti´on de listas de correo en pantuflo con Mailman. . . 87

4.14. La p´agina de resumen de estado de Nagios para el Laboratorio de M´ostoles. . . 93

4.15. La p´agina de problemas de Nagios muestra los problemas en algunas m´aquinas. . . 93

4.16. El parte de guerra de M´ostoles muestra el estado de las estaciones. . . 94

(14)
(15)

Indice de Listados

4.1. Generaci´on de un CD personalizado de Ubuntu para instalaci´on autom´atica . . . . 43

4.2. Instalaci´on del paquete dhcp a trav´es de apt-get . . . 43

4.3. Fichero de configuraci´on dpchd.conf. Configuraci´on de subred. . . 44

4.4. Fichero de configuraci´on dpchd.conf. Configuraci´on de host. . . 44

4.5. Instalaci´on del servicio tfptd-hpa a trav´es de apt-get . . . 45

4.6. Fichero de configuraci´on /etc/default/tfptd-hpa. . . 45

4.7. Reinicio del demonio tftp . . . 45

4.8. Descarga del kernel de arranque por red de Ubuntu Hardy . . . 46

4.9. Fichero de configuraci´on de Isolinux . . . 46

4.10. Fichero de configuraci´on de Isolinux . . . 47

4.11. El fichero de preconfiguraci´on preseed.cfg. . . 47

4.12. El fichero de preconfiguraci´on preseed.cfg. . . 47

4.13. El fichero de preconfiguraci´on preseed.cfg. . . 48

4.14. El fichero de preconfiguraci´on preseed.cfg. . . 48

4.15. El fichero de preconfiguraci´on preseed.cfg. . . 49

4.16. El fichero de preconfiguraci´on preseed.cfg. . . 49

4.17. El fichero de preconfiguraci´on preseed.cfg. . . 49

4.18. El fichero de preconfiguraci´on preseed.cfg. . . 50

4.19. Instalaci´on del paquete slapd a trav´es de apt-get . . . 51

4.20. El fichero de plantilla de debconf para el paquete slapd. . . 51

4.21. Preconfigurando el paquete slapd. . . 51

4.22. Instalaci´on del paquete slapd a trav´es de apt-get . . . 52

4.23. Instalaci´on de las bibliotecas necesarias para la autenticaci´on PAM v´ıa LDAP . . . 56

4.24. Contenido del fichero nsswitch.conf para autenticaci´on v´ıa LDAP . . . 57

4.25. Contenido del fichero pam ldap.conf para autenticaci´on v´ıa LDAP . . . 57

4.26. Contenido del fichero libnss-ldap.conf para autenticaci´on v´ıa LDAP . . . 57

4.27. Instalaci´on del conjunto de herramientas migrationtools a trav´es de apt-get . . 58

4.28. Modificando registros en el ´arbol LDAP usando ldapadd . . . 58

4.29. Instalaci´on del paquete openssl a trav´es de apt-get . . . 60

4.30. Creaci´on de un certificado para nuestro servidor LDAP . . . 60

4.31. L´ıneas necesarias para proporcionar soporte SSL al servidor LDAP . . . 61

4.32. L´ıneas necesarias para proporcionar soporte SSL al servidor LDAP . . . 61

4.33. Reinicio del demonio slapd . . . 61

4.34. L´ıneas necesarias para proporcionar soporte SSL al servidor LDAP . . . 63

4.35. L´ıneas necesarias para proporcionar soporte SSL al servidor LDAP . . . 64

4.36. Instalaci´on del demonio slurpd con apt-get . . . 65

4.37. A˜nadiendo replicaci´on a nuestro servidor LDAP . . . 65 xv

(16)

INDICE DE LISTADOS INDICE DE LISTADOS

4.38. A˜nadiendo replicaci´on a nuestro servidor LDAP . . . 66

4.39. Copia de Seguridad de los datos del servidor LDAP . . . 67

4.40. L´ınea de cron para automatizar las copias de seguridad de LDAP . . . 67

4.41. Modificando la contrase˜na de un usuario usando ldappasswd . . . 69

4.42. Instalaci´on del servidor NFS a trav´es de apt-get . . . 70

4.43. Instalaci´on del gestor de raid mdadm usando apt-get . . . 71

4.44. Automatizaci´on en la creaci´on del raid . . . 72

4.45. Automatizaci´on en la creaci´on del RAID . . . 72

4.46. Instalaci´on de Apache y del m´odulo PHP5 para el servidor . . . 75

4.47. Instalaci´on del servidor Apache2 y del m´odulo WebDav/Subversion para el servidor . . . 75

4.48. Creaci´on de un host virtual en Apache para el host pantuflo.escet.urjc.es . . . . 76

4.49. Descarga e Instalaci´on de la herramienta MediaWiki . . . 77

4.50. Configuraci´on de MediaWiki para autenticar usuarios usando LDAP . . . 79

4.51. Configuraci´on de Apache para dar soporte a p´aginas personales de usuarios . . . . 81

4.52. Instalaci´on de la herramienta postfix usando apt-get . . . 82

4.53. Instalaci´on de los demonios necesarios para dar soporte POP3 e IMAP a pantuflo 83 4.54. Reiniciando el demonio dovecot tras su reconfiguraci´on . . . 84

4.55. Instalaci´on de mailman usando apt-get . . . 88

4.56. Creaci´on de una nueva lista de mailman usando el comando newlist . . . 88

4.57. Instalaci´on de la herramienta debmirror usando apt-get . . . 89

4.58. Descargando la r´eplica de Ubuntu usando el comando debmirror . . . 90

4.59. Descargando la r´eplica de Debian usando el comando debmirror . . . 90

4.60. Contenido del fichero /etc/apt/sources.list usando la r´eplica del Laboratorio . . 90

4.61. Instalaci´on de la herramienta Nagios con apt-get . . . 91

4.62. Instalaci´on de la herramienta Munin (servidor) con apt-get . . . 93

4.63. Instalaci´on de la herramienta Munin (cliente) con apt-get . . . 94

4.64. Instalaci´on de la herramienta Munin (cliente) con apt-get . . . 94

4.65. Creaci´on de una tabla en MySQL para almacenar la informaci´on relativa a auditor´ıa de usuarios . . . 98

4.66. Script b´asico para registrar informaci´on de auditor´ıa de usuarios . . . 98

4.67. L´ınea de cron para la automatizaci´on de la auditor´ıa de usuarios en el sistema . . . 99

4.68. Monitor de alerta de conexiones nocturnas en el laboratorio . . . 99

4.69. Intentos de ataque de SSH mediante fuerza bruta o diccionario . . . 100

4.70. Instalaci´on de la herramienta Denyhosts . . . 101

A.1. El fichero de preconfiguraci´on necesario para la instalaci´on desatendida. . . ii

A.2. Fichero de configuraci´on de Isolinux para el arranque por red. . . v

A.3. Fichero de configuraci´on de Isolinux para el arranque por red. . . vi

B.1. Script backup-sapientin.sh . . . x

B.2. Script backup-nano . . . x

B.3. Script backup-usb.sh . . . xi

B.4. Script backup-usb.sh . . . xi

B.5. Script backup-ldap.sh . . . xii

B.6. Creaci´on de la base de datos de Auditor´ıa . . . xii

B.7. Script who-mostoles.sh . . . xii

B.8. Script sshatodos-alphas.sh . . . xiii

B.9. Script sshatodos-betas.sh . . . xiii

B.10.Script sshatodos-gammas.sh . . . xiii

(17)

B.12.Script sshatodos.sh . . . xiv

B.13.Script scpatodos-alphas.sh . . . xiv

B.14.Script scpatodos-betas.sh . . . xiv

B.15.Script scpatodos-gammas.sh . . . xiv

B.16.Script scpatodos-deltas.sh . . . xiv

B.17.Script scpatodos.sh . . . xv

B.18.Script john-laboratorio-mostoles . . . xv

B.19.Script john-laboratorio-fuenla . . . xviii

C.1. Fichero de configuraci´on /etc/ldap/slapd.conf . . . xxii

C.2. Fichero de configuraci´on /etc/bind9/named.conf . . . xxiv

C.3. Fichero de configuraci´on /etc/bind9/db.pantuflo.es . . . xxvi

C.4. Fichero de configuraci´on /etc/bind9/named.conf . . . xxxi

C.5. Fichero de configuraci´on /etc/apache2/sites-enabled/pantuflo.es . . . xxxii

C.6. Fichero de configuraci´on /etc/apache2/sites-enabled/pantuflo.escet.urjc.es . xxxii C.7. Fichero de configuraci´on /etc/apache2/sites-enabled/webmail.pantuflo.es . . xxxiv

C.8. Fichero de configuraci´on /etc/apache2/sites-enabled/mysql.pantuflo.es . . . xxxiv

C.9. Fichero de configuraci´on /etc/postfix/main.cf . . . xxxv

C.10.Fichero de configuraci´on /etc/postfix/master.cf . . . xxxvi

C.11.Fichero de configuraci´on /etc/dovecot/dovecot.conf . . . xxxviii C.12.Fichero de configuraci´on /etc/exports . . . li C.13.Fichero de configuraci´on /etc/postfix/master.cf . . . lii C.14.Fichero de configuraci´on /etc/exports . . . lvi

(18)
(19)

Licencia de este documento

El presente documento se distribuye bajo la licencia Creative Commons -Reconocimiento no comercial - compartir bajo la misma licencia 2.5, cuyos t´erminos pueden encontrarse en el Web1

. La presente licencia, le otorga permiso para: Copiar, distribuir y publicar libremente la obra

Hacer obras derivadas

Bajo las condiciones siguientes:

Reconocimiento: Debe reconocer los cr´editos de la obra de la manera especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra).

No comercial. No puede utilizar esta obra para fines comerciales.

Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, s´olo puede distribuir la obra generada bajo una licencia id´entica a ´esta.

1

http://creativecommons.org/licenses/by-nc-sa/2.5/es/

(20)
(21)

Cap´ıtulo

1

Introducci´

on

El primer cap´ıtulo de este documento resume la motivaci´on inicial de la realizaci´on de este proyecto (el porqu´e se lleva a cabo), as´ı como la estructura principal del presente documento. Posteriormente, se procede a enumerar cada una de las tecnolog´ıas que se utilizan en el proyecto, incluyendo todas las alternativas que exist´ıan para cada una de ellas (en el apartado Estado del arte). Este cap´ıtulo es meramente introductorio al proyecto desarrollado, dejando los detalles de los objetivos a desarrollar y la implementaci´on de los mismos para cap´ıtulos posteriores.

(22)

1.1. MOTIVACI ´ON DEL PROYECTO

1.1.

Motivaci´

on del proyecto

El presente documento resume casi toda la actividad realizada en un plazo de un a˜no aproximadamente como administrador de sistemas de los Laboratorios de Linux de la ETSII1

y la ETSIT2

, en los Campus de M´ostoles y Fuenlabrada, de la Universidad Rey Juan Carlos. Durante el desarrollo de este trabajo, se han completado una serie de hitos que si bien pertenecen al trabajo diario y normal de cualquier administrador de sistemas, puede adaptarse bastante bien a la realizaci´on de un Proyecto Fin de Carrera de una Ingenier´ıa Inform´atica, debido a que el desarrollo diario del trabajo ha sido dividido en fases, al igual que un proyecto: elaborar una lista y analizar las diferentes alternativas para cada uno de los objetivos, construir una lista de objetivos a desarrollar en un plazo determinado de tiempo, establecer un dise˜no conveniente y escalable, y por ´ultimo, implementar o implantar poco a poco cada uno de los objetivos propuestos.

Por supuesto, un a˜no da para mucho, para bastante m´as que para los hitos que se documentan en la presente memoria. Sin embargo, debido a limitaciones de espacio, nos vemos obligados a documentar lo estrictamente necesario y lo m´as fundamental.

1.2.

Estructura de este documento

En esta secci´on se indica la divisi´on en cap´ıtulos del presente documento, en los cuales se realizar´a un an´alisis de cada una de las fases por las cuales ha avanzado el proyecto. Este documento se encuentra dividido en cinco cap´ıtulos, a saber:

El cap´ıtulo de Introducci´on, en el cual se presentan cu´al es la motivaci´on del proyecto y el estado del arte de cada una de las tecnolog´ıas que se han usado en el proyecto.

El cap´ıtulo de Objetivos, en el cual se presentar´an los objetivos principales que se han de desarrollar en el proyecto.

El cap´ıtulo de Dise˜no,

El cap´ıtulo de Implantaci´on, en el cual se implementan cada uno de los requisitos de los que consta el proyecto.

El cap´ıtulo de Conclusiones, en el que se realiza un an´alisis de todos los hitos alcanzados, los conocimientos adquiridos y todo el trabajo futuro que podr´ıa realizarse para mejorar o terminar de perfilar el trabajo realizado.

Por ´ultimo, en los Ap´endices del presente documento, se incluye el c´odigo fuente (enti´endase por c´odigo fuente en este proyecto todos aquellos ficheros de configuraci´on y scripts de shell que se han desarrollado) desarrollado en el proyecto.

Junto con el presente documento se adjunta un soporte electr´onico en CD en el que puede encontrarse la presente memoria as´ı como todo el c´odigo fuente desarrollado en el proyecto.

1.3.

Estado del arte

En este apartado vamos a analizar todas aquellas tecnolog´ıas que vamos a tocar en este proyecto. En este proyecto de hecho, van a ser muchas las tecnolog´ıas, aplicaciones, servidores y servicios que se van a facilitar a los usuarios de nuestro sistema. Como ser´ıa pr´acticamente

1

Escuela Superior de Ingenier´ıa Inform´atica

2

(23)

CAP´ITULO 1. INTRODUCCI ´ON

imposible realizar un an´alisis del estado del arte de cada una de ellas, nos vamos a centrar solamente en realizar un breve an´alisis de los sistemas de instalaciones desatendidos, por un lado, ya que uno de nuestros objetivos primordiales (el que nos llevar´a m´as tiempo) ser´a la implementaci´on de un sistema de instalaciones completamente desatendido que nos haga olvidarnos del tedioso proceso de tener que instalar aproximadamente 200 estaciones de usuario. Evidentemente para ello, partimos de la base que estas instalaciones se realizan de sistemas Linux, y no hemos ca´ıdo en la cuenta que hoy en d´ıa existen multitud de distribuciones que ofrecen este grandioso sistema operativo listo para su instalaci´on. Aunque son pocas las distribuciones que tienen m´as fama hoy en d´ıa, ser´a necesario enumerar las bondades y defectos de las m´as conocidas (principalmente, Debian GNU/Linux, Ubuntu, Red Hat Linux y SuSE). Por ´ultimo, y dado que nuestro sistema albergar´a un gran n´umero de cuentas de usuario, ser´a tarea obligada decidir acerca de qu´e sistema de cuentas de usuario en red es m´as adecuado para nuestras necesidades, y por supuesto, dotar a este sistema de cuentas de un mecanismo de almacenamiento de ficheros adecuado (obviamente, si tenemos un sistema de cuentas en red, el medio de almacenamiento de informaci´on deber´a estar en red tambi´en).

Por ´ultimo, y para no extendernos demasiado, realizaremos un breve an´alisis de las aplicaciones que dotan de funcionalidad de correo electr´onico a nuestro sistema (tanto de recogida como de entrega). De esta manera dotaremos a nuestro entorno con la funcionalidad de que los usuarios sean capaces de recibir correo electr´onico en sus cuentas, y ´estos tambi´en sean capaces de poder descargar este correo en sus ordenadores personales. Una vez que todos estos sistemas se encuentran perfectamente configurados y funcionando, nuestra labor se centrar´a en la monitorizaci´on de todos estos servicios. Para ello, instalaremos una herramienta de monitorizaci´on que de cuenta cuando se produce cualquier tipo de problema o ca´ıda de un servicio concreto, alertando a las personas oportunas. Estos herramientas ser´an discutidas en el apartado Herramientas de monitorizaci´on.

1.3.1. Distribuciones de Linux

En primer lugar, vamos a realizar un breve repaso por las distribuciones de Linux m´as usadas hoy en d´ıa. Cuando hablamos de Linux, en el sentido m´as general de la palabra, nos referimos al kernel o n´ucleo del Sistema Operativo. El kernel de Linux es el mismo para todas las distribuciones (normalmente, m´ınimamente modificado por la distribuci´on) y puede ser descargado de forma independiente desde Internet3

e instalado en cualquier distribuci´on sin muchas dificultades. Cuando hablamos de distribuci´on de Linux nos referimos al conjunto formado por el kernel, las aplicaciones (que incluya de forma opcional el equipo desarrollador de la distribuci´on en concreto) junto con un proceso de instalaci´on. En este sentido, hoy en d´ıa hay miles de distribuciones de Linux4

que son usadas por millones de usuarios alrededor del mundo. Sin embargo, hay algunas que merecen especial atenci´on, y que est´an clasificadas como las m´as usadas o m´as populares hoy en d´ıa. En esta clasificaci´on, se encuentran Red Hat Linux, SuSE o Debian GNU/Linux. Seg´un podemos comprobar en el cuadro 1.1, la distribuci´on m´as usada hoy en d´ıa es Debian (18.84 %), seguida por Ubuntu (16.43 %), SuSE (9.32 %), Slackware (8.35 %) y gentoo (8.07 %), entre otras. Se omite en este resultado el indicado por otras distribuciones mostrado en la tabla.

Es necesario indicar que las estad´ısticas de uso por distribuciones mostradas en la tabla 1.1 se realizan a partir de los usuarios registrados en el sitio del cual se ha obtenido la estad´ıstica. La tabla 1.2 muestra su estad´ıstica particular sobre las diez distribuciones m´as usadas (en el

3

http://www.kernel.org

4

http://distrowatch.com/index.php?language=ES

(24)

1.3. ESTADO DEL ARTE Distribuci´on Uso CentOS 0.98 % Kubuntu 1.50 % Mandriva 2.01 % Mandrake 4.27 % Red Hat 6.70 % Fedora Core 6.93 % Gentoo 8.07 % Slackware 8.35 % SuSE 9.32 % Ubuntu 16.43 % Debian GNU/Linux 18.84 % Others 18.80 %

Cuadro 1.1: Distribuciones m´as usadas en la actualidad. Fuente: LinuxCounter Distribuci´on N´umero de visitas ´ultimo mes

Ubuntu 1944 openSUSE 1557 Mint 1351 PCLinuxOS 1053 Fedora 1036 Debian 923 Sabayon 853 Mandriva 776 CentOS 629 Gentoo 611

Cuadro 1.2: Distribuciones m´as usadas en la actualidad. Fuente: DistroWatch ´

ultimo mes), colocando tambi´en a Ubuntu y Debian entre los primeros puestos. En este caso se han obtenido los datos del portal DistroWatch5

. Como vemos, las distribuciones mayoritarias son Debian GNU/Linux y Ubuntu, seguidas muy de cerca por SuSE, Gentoo y Fedora, entre otras. La decadencia de Red Hat en los ´ultimos a˜nos queda presente en la estad´ıstica. La distribuci´on que hace a˜nos ocupaba los primeros puestos de uso entre los usuarios ha visto comido su terreno a favor de Ubuntu y SuSE. Quiz´a los cambios en la organizaci´on interna de Red Hat (que veremos a continuaci´on) y la aparici´on de Ubuntu tuvo como precio la p´erdida de un gran n´umero de usuarios.

En definitiva, existen multitud de distribuciones hoy en d´ıa, de las cuales s´olo unas cuantas alcanzan los primeros puestos en n´umero de usuarios y en popularidad. En concreto, en los Laboratorios de Linux de la Universidad se ha usado Debian GNU/Linux desde que comenz´o su andadura, hasta hace poco tiempo, que se tom´o la decisi´on de pasar a Ubuntu.

A continuaci´on vamos a realizar un breve repaso por las distribuciones m´as usadas o m´as populares. En concreto, Debian GNU/Linux, como distribuci´on que usaremos en aquellas m´aquinas que presten su funci´on de servidor. A continuaci´on, Ubuntu, distribuci´on que usaremos en las estaciones de trabajo de los laboratorios. Por ´ultimo, detallaremos las razones que nos llevan a descartar otras distribuciones como soluci´on adoptada tanto en los servidores de los laboratorios como en las estaciones, haciendo hincapi´e principalmente en las desventajas, ya que

5

(25)

CAP´ITULO 1. INTRODUCCI ´ON

son propuestas que en un principio se decide descartar. Debian GNU/Linux

El proyecto Debian surge aproximadamente en el a˜no 1993, de la mano de Ian Murdock como l´ıder del proyecto, y con un objetivo principal: crear una distribuci´on de Linux que separara claramente el software libre del no libre. Adem´as, el modelo de desarrollo de la distribuci´on es completamente ajeno a objetivos empresariales o comerciales, dejando de la mano de los usuarios de la misma la liberaci´on de las versiones de la distribuci´on.

En principio, la adaptaci´on de Debian m´as conocida y m´as desarrollada hasta la fecha es la que se basa en el n´ucleo Linux, com´unmente llamada Debian GNU/Linux, aunque existen otras ramas de desarrollo basadas en otros n´ucleos, como Hurd, NetBSD o FreeBSD. El proyecto Debian se rige por unas directrices muy estrictas en cuanto a la organizaci´on del mismo: un contrato social establece cual es la base del proyecto y como sus usuarios deben tratar la mayor´ıa de los asuntos, unas directrices de software establecen qu´e software es adecuado o no para la distribuci´on, as´ı como la Constituci´on de Debian establece cual es la jerarqu´ıa interna de la organizaci´on y como se llevan a cabo y se toman las decisiones principales. Estas normas establecen cuales son los poderes principales del l´ıder del proyecto (el que est´e vigente en ese momento) y las responsabilidades de los desarrolladores en general.

Existe una figura visible dentro de la organizaci´on, el l´ıder de la misma. Esta figura es elegida por los propios integrantes de la comunidad Debian (principalmente, desarrolladores) y aunque tiene unas atribuciones principales m´as all´a de las de cualquier desarrollador, est´a lejos de ser una decisi´on absoluta que tengan que acatar el resto de desarrolladores. El l´ıder de la comunidad se elige una vez al a˜no, siendo el primero Ian Murdock (a˜no 1993-1996) y el ´ultimo (l´ıder actual) Steve McIntyre (abril 2008-hoy).

Respecto a los detalles t´ecnicos, cabe rese˜nar que Debian ha conseguido su fama en los ´ultimos a˜nos, cuando el n´umero de arquitecturas soportadas se ha elevado considerablemente en los ´

ultimos a˜nos, as´ı como el n´umero de paquetes incluido por defecto dentro de la distribuci´on. Actualmente, son soportadas 11 arquitecturas diferentes de hardware en Debian GNU/Linux, y el n´umero de paquetes se eleva por encima de 18.000. Actualmente, la distribuci´on se encuentra en la versi´on 4.0 de manera estable (´ultima versi´on estable liberada), cuyo nombre en clave se denomina Etch. Como curiosidad, los nombres de liberaci´on de las versiones de Debian hacen alusi´on a personajes de la trilog´ıa de Disney/Pixar Toy Story, asign´andose un nuevo nombre cuando se crea una nueva versi´on de pruebas.

La organizaci´on de desarrollo de Debian se divide en tres ramas de desarrollo principales: la rama estable, la cual es fruto de la congelaci´on de una rama en pruebas (llega un momento que la estabilidad alcanzada en la rama en pruebas supone que no se a˜nadan ni nuevos paquetes ni nueva funcionalidad a la correspondiente rama, creando una nueva versi´on de la distribuci´on); la rama de pruebas o testing, la cual se compone de todos los paquetes que han ido reduciendo su n´umero de fallos provenientes de la rama inestable. Por ´ultimo, la rama inestable, comprende el desarrrollo activo y principal de la distribuci´on. En ella se encuentran los paquetes reci´en a˜nadidos a la distribuci´on donde se comprueba su estabilidad, el n´umero de fallos y la integraci´on con el resto de paquetes de la distribuci´on. En particular y respecto a las diferentes ramas de desarrollo de la distribuci´on, siempre se recomienda el uso de la rama estable para uso en producci´on (debido a la estabilidad y al nivel de depuraci´on que ha alcanzado esta versi´on) y al uso de la rama inestable si se quiere estar m´as al d´ıa en cuanto a versiones de un paquete en concreto, incluido dentro de la distribuci´on. Sin embargo, usar la rama inestable puede convertirse en un juego peligroso, ya que de un d´ıa para otro nuestro ordenador puede dejar de funcionar o puede producirse un problema grave que puede acabar en una reinstalaci´on si no se tienen los conocimientos necesarios para solucionar el problema y volver a la situaci´on original. Los usuarios avanzados de Debian

(26)

1.3. ESTADO DEL ARTE

conocen esta situaci´on y normalmente, siempre que su distribuci´on se encuentra situada en la rama inestable, suelen tener mucho cuidado con las actualizaciones o instalaciones de paquetes nuevos.

Existe dos ventajas principales de la distribuci´on Debian GNU/Linux sobre la mayor´ıa de distribuciones m´as usadas hoy en d´ıa. La principal, es la estabilidad de la rama estable de la distribuci´on. La independencia de Debian frente a intereses comerciales hacen que los tiempos de liberaci´on de la distribuci´on sean lo suficientemente grandes como para que de tiempo a que la distribuci´on sea revisada todo lo necesario como para que tenga un nivel de calidad m´as que aceptable. Estos tiempos, de un a˜no normalmente (como m´ınimo) son excesivos para usuarios que desean tener su software al d´ıa: ´ultima versi´on de escritorio, ´ultima versi´on del servidor web Apache, etc´etera. Sin embargo, estos usuarios deben saber que la rama de desarrollo de Debian que est´an usando no es la m´as adecuada para ellos, ya que los tiempos de liberaci´on tan grandes facilitan que la distribuci´on sea una de las m´as estables y seguras frente a otras m´as conocidas, en detrimento de usar las versiones m´as actuales y novedosas en lo que a software se refiere. Es por ello que la rama estable de Debian GNU/Linux ha sido relegada al plano del servidor principalmente, dejando otras ramas para el escritorio y el uso menos profesional del equipo en cuesti´on. La otra ventaja que nos ocupa es la herramienta de instalaci´on de software, la herramienta apt6

. Esta herramienta, muy conocida entre los usuarios de la distribuci´on y todas aquellas que se apoyan en ´esta (Knoppix, Ubuntu y dem´as) facilita enormemente la instalaci´on, configuraci´on y eliminaci´on de software en Debian (y en todas aquellas distribuciones Linux que lo hayan acogido como herramienta de instalaci´on de software). En principio, esta herramienta funciona en l´ınea de comandos, aunque ha medida que ha pasado el tiempo se han dise˜nado interfaces ´unicos o front-ends que facilitan el uso de la herramienta para usuarios noveles7

. La herramienta apt es capaz de funcionar con repositorios de software a lo largo de Internet, facilitando as´ı la labor de localizaci´on de software adicional. De forma oficial, existen repositorios oficiales para Debian que contienen los paquetes incluidos en la distribuci´on en cada una de las ramas. Para que este sistema sea escalable, estos repositorios se encuentran replicados a lo largo del mundo en mirrors o espejos locales distribuidos en cada regi´on del planeta. Es com´un que cada Universidad cuente con el suyo propio (como es el caso de la nuestra). Adem´as, es posible que los usuarios construyan o creen sus propios repositorios con aquellos paquetes que hayan construido particularmente con las aplicaciones que ellos hayan considerado oportuno. El resto de usuarios del planeta puede instalar esas aplicaciones sin m´as que indicar a la herramienta apt cual es la localizaci´on del recurso del correspondiente repositorio (normalmente, a trav´es de una URL com´un). El uso de apt es casi una herramienta fundamental en el uso diario del sistema, facilitando la tarea de instalaci´on de software enormemente, tanto al administrador como al usuario de a pi´e. Tanto, que hoy en d´ıa, la instalaci´on de software en sistemas Linux a trav´es de los fuentes (usando el c´odigo fuente, compil´andolo de forma manual) a quedado relegada a un plano muy lejano y casi ya no es usada por los usuarios, tanto por la incomodidad de este m´etodo como por el n´umero de errores que normalmente se suelen producir.

Es por ello que realizamos la elecci´on de Debian GNU/Linux como sistema base para nuestros servidores: la estabilidad de la distribuci´on en su rama estable para sistemas en producci´on hace que nos decantemos por esta opci´on, dejando para el escritorio distribuciones que se apoyen en Debian (principalmente, por la estabilidad y las herramientas de instalaci´on de software) pero que incluyan software m´as actual de cara al usuario.

Con el paso del tiempo han sido muchas las distribuciones que han surgido tomando Debian GNU/Linux como distribuci´on base. La estabilidad y la organizaci´on de la distribuci´on hace que muchas distribuciones adopten o partan de ella para crear nuevas distribuciones. Las m´as

6

APT son las siglas de Advanced Packaging Tool o Herramienta de empaquetamiento avanzado.

7

(27)

CAP´ITULO 1. INTRODUCCI ´ON

conocidas, Knoppix o Ubuntu, que comentaremos a continuaci´on.

Ubuntu Ubuntu8

es una de las distribuciones cuyo cociente entre tiempo y popularidad ha sido m´as pronunciado. Basada en Debian GNU/Linux como distribuci´on base, ha ido desplazando a los usuarios m´as confesos y ac´errimos a la distribuci´on base hasta Ubuntu como sistema principal de escritorio basado en Linux. Los pilares ideol´ogicos principales en los que se basa Ubuntu son la facilidad y usabilidad a la hora de usar el sistema operativo, as´ı como la regularidad en la liberaci´on de nuevas versiones (normalmente, cada seis meses, en Abril y en Octubre). Est´a desarrollada por Canonical, apoyada por el empresario sudafricano Mark Shuttleworth.

El proyecto surgi´o en el a˜no 2004 aproximadamente, con una financiaci´on de unos diez millones de d´olares. En la distribuci´on participan muchos desarrolladores de Debian y de Gnome, estos primeros decepcionados con el modo de funcionamiento interno de la distribuci´on Debian, por aquel entonces una de las m´as usadas, tanto en el escritorio como en el servidor. Estos desarrolladores buscaron apoyo en el empresario Mark Shuttleworth, que apreci´o la idea del proyecto y lo apoy´o econ´omicamente. Tras varios meses de trabajo y un breve per´ıodo de pruebas, la primera versi´on de Ubuntu (Warty Warthog) fue lanzada el 20 de octubre de 2004.

Como detalles t´ecnicos relevantes, podemos destacar que Ubuntu conserva la mayor´ıa de las ventajas de Debian GNU/Linux, manteniendo como principal la herramienta de instalaci´on de software apt. Adem´as, los periodos de liberaci´on de Ubuntu son bastante m´as cortos, lo que hace que las versiones que se incluyen en la distribuci´on sean bastante actuales. Normalmente, Ubuntu suele incluir la ´ultima versi´on de los escritorios Gnome y KDE (sino la ´ultima, una de las m´as actuales) as´ı como las ´ultimas versiones de los paquetes de software m´as importantes. Ubuntu no soporta tanto arquitecturas como Debian: se incluyen de manera oficial soporte para dos arquitecturas: Intel x86 y AMD64, sin embargo ha sido portada a m´as plataformas de forma extraoficial, la descontinuada PowerPC, Sparc, o incluso la plataforma de videojuegos PlayStation 3 creada por Sony.

Ubuntu es una de las distribuciones que incluye un CD Live!, que facilita que el usuario pueda probar la distribuci´on sin necesidad de realizar una instalaci´on en el disco. Esta funcionalidad es bastante interesante para poder introducir nuevos usuarios en Linux sin necesidad de realizar nuevas instalaciones en sus sistemas.

Una de las principales ventajas que hacen que nos decantemos por Ubuntu como sistema usado en las estaciones del Laboratorio es que, aparte de ser una distribuci´on basada en Debian (incluyendo todas sus ventajas, como apt), se incluyen las versiones m´as actuales de software en cada liberaci´on, de forma que de cara a los usuarios disponemos de un sistema totalmente actual, no como pasaba anteriormente cuando las estaciones del Laboratorio se basaban en Debian GNU/Linux: los periodos de liberaci´on tan largos hac´ıan que una vez liberada la versi´on estable, las versiones de escritorio, aplicaciones y dem´as estuvieran totalmente desactualizadas.

Ubuntu al igual que Debian, ha servido como base para otras distribuciones: xUbuntu, kUbuntu o Edubuntu son distribuciones muy usadas en la actualidad y que est´an basadas en Ubuntu como distribuci´on base (al igual que Ubuntu se apoya en Debian). Estas distribuciones normalmente contienen pocas variaciones con respecto a la original, centr´andose normalmente en las aplicaciones incluidas o en el escritorio por defecto que se usa en cada una de ellas.

8

http://www.ubuntulinux.org

(28)

1.3. ESTADO DEL ARTE

SuSE

La distribuci´on SuSE9

es una de las distribuciones Linux m´as conocidas y m´as usadas en la actualidad. Est´a basada en la distribuci´on Slackware y entre las principales ventajas o virtudes de esta distribuci´on est´a la facilidad de instalaci´on de la misma (contaba con un instalador gr´afico hace bastante tiempo, cuando ninguna de las distribuciones Linux lo sol´ıan incluir) y un administrador gr´afico del equipo llamado Yast, el cual facilita la labor de instalaci´on de nuevo software y la configuraci´on del equipo. En la actualidad, SuSE es propiedad de Novell, desde que la absorbi´o en 2004. En el a˜no 2005, en la LinuxWorld, Novell, siguiendo los pasos de RedHat Inc., anunci´o la liberaci´on de la distribuci´on SuSE Linux para que la comunidad fuera la encargada del desarrollo de esta distribuci´on, que ahora se denomina openSUSE.

Como detalles t´ecnicos, SuSE usa el escritorio KDE por omisi´on, aunque incluye tambi´en el escritorio Gnome. Como sistema de paquetes nativo, SuSE usa el sistema de paquetes RPM (Red Hat Package Manager), que es el sistema de paquetes que se incluye en la distribuci´on Red Hat/Fedora. Sin embargo, los cambios que ha sufrido esta distribuci´on a lo largo del tiempo as´ı como el sistema de gesti´on de paquetes que usa (RPM) hace que descartemos esta distribuci´on para ser usada en nuestro entorno.

Red Hat/Fedora Core

Por ´ultimo, realizaremos un breve an´alisis de otra de las distribuciones m´as conocidas en la actualidad. La distribuci´on Red Hat10

, posteriormente Fedora, ha sido una de las distribuciones que m´as reconocimiento ha tenido en los ´ultimos tiempos. En principio, existen dos versiones principales de esta distribuci´on: Red Hat Enterprise Linux, dirigida principalmente al mercado profesional, y Fedora Core, que surgi´o en el a˜no 2003 cuando Red Hat Linux fue descontinuado. Digamos que esta divisi´on es similar a la sufrida por SuSE, que mantiene una versi´on comercial de su distribuci´on (Novell SuSE Enterprise) y su versi´on gratuita, openSuSE. De forma similar, Red Hat ofrece su versi´on comercial (Red Hat Enterprise Linux) y su versi´on gratuita o libre (Fedora).

Red Hat Software Inc. fue fundada en el a˜no 1994, y es conocida por aportar numerosas contribuciones y luchar en pro del software libre. En esos a˜nos la distribuci´on contaba con gran n´umero de usuarios y gran popularidad. Sin embargo, el paso de los a˜nos y la aparici´on de nuevas distribuciones con mayor estabilidad, mayor n´umero de usuarios y de desarrolladores la ha relegado a un segundo plano, aunque sigue contando con un gran n´umero de usuarios en la actualidad.

En cuanto al plano t´ecnico no hay muchos detalles que comentar. Red Hat Linux al igual que SuSE usa el sistema de paquetes RPM, un sistema de paquetes un tanto antiguo en comparaci´on con el sistema de paquetes apt. El sistema de paquetes es algo tan fundamental dentro de una distribuci´on que es motivo de descartar esta distribuci´on para su uso en el laboratorio al igual que SuSE.

1.3.2. Sistemas de instalaci´on desatendidos

Dado que uno de nuestros objetivos principales es dise˜nar un proceso de instalaci´on desatendida y completamente automatizado, vamos a analizar los sistemas de instalaci´on desatendidos m´as usados hoy en d´ıa por administradores de un n´umero muy elevado de m´aquinas. En concreto y para el caso que nos ocupa, partimos de la base que necesitamos un m´etodo que nos permita instalar en 300 estaciones de usuario aproximadamente (160 en el Campus de M´ostoles

9

http://es.opensuse.org/Bienvenidos a openSUSE.org

10

(29)

CAP´ITULO 1. INTRODUCCI ´ON

y 140 en el de Fuenlabrada) de la forma m´as r´apida y c´omoda posible, de cara al administrador de las estaciones y de las instalaciones masivas.

Clonaci´on de disco duro

La clonaci´on de una partici´on del disco o del disco duro completo es hoy en d´ıa uno de los sistemas m´as usados a la hora de realizar instalaciones masivas, bien se trate de entornos docentes o de entornos empresariales, en los que se debe instalar una m´aquina r´eplica de una m´aquina inicial. Este sistema copia bit a bit todos los datos de una partici´on en un fichero para el posterior volcado a la inversa en otra partici´on o disco duro. Dependiendo de la aplicaci´on con la que estemos realizando la clonaci´on, este proceso ser´a m´as o menos r´apido, y nos permitir´a una mayor flexibilidad a la hora de realizar la clonaci´on.

Hoy en d´ıa, las aplicaciones m´as modernas que permiten realizar clonaciones de disco duro, permiten:

Lectura de sistemas de ficheros ext2/ext3 (aspecto fundamental en nuestro caso)

Compresi´on de los datos para que ocupen menos espacio. Los sistemas de clonaci´on m´as antiguos requer´ıan un espacio en disco igual o mayor al del disco duro que se iba a clonar. Almacenamiento en red de los datos. La imagen del disco duro clonado pod´ıa almacenarse en un servidor FTP, o en un directorio compartido de Windows. Posteriormente, cuando se realizaba el proceso inverso, los datos pod´ıan ser descargados de estos servicios en red. Clonaci´on de todo el disco duro o de una partici´on en concreto. Los sistemas m´as modernos permiten elegir entre clonar el disco duro al completo, o solamente una partici´on del disco. Rapidez de la clonaci´on del disco duro o partici´on. Los sistemas m´as antiguos empleaban una gran cantidad de tiempo para realizar una clonaci´on de un disco, con el consiguiente perjuicio para el administrador.

Hoy en d´ıa, existe un gran abanico de aplicaciones con diferentes licencias pensadas para realizar clonaciones de discos duros o particiones para realizar copias de seguridad de datos, realizar instalaciones masivas, etc´etera. Las aplicaciones comerciales m´as conocidas hoy en d´ıa pueden ser Acronis True Image11

o Norton Ghost12

. Ambas aplicaciones est´an disponibles a trav´es de los servicios inform´aticos de Campus, con una licencia totalmente funcional para nuestras necesidades. Sin embargo, el balance total entre las ventajas y desventajas entre este m´etodo y el posteriormente elegido como m´etodo principal de instalaci´on, hace que nos decantemos finalmente por el m´etodo basado en ficheros de preconfiguraci´on. Existen otras aplicaciones con licencias libres que permiten realizar una clonaci´on de disco duro. En el caso m´as b´asico, el comando dd permite leer una partici´on y guardarla en un fichero. Sin embargo, este m´etodo tan rudimentario adolece de ser muy lento, a parte de necesitar como m´ınimo el tama˜no en disco de la partici´on para almacenar el fichero correspondiente.

Entre los dos aplicaciones comerciales presentadas anteriormente, cabe destacar como ventajas principales la rapidez y el poco espacio que ocupa la imagen de un disco duro de cualquiera de los equipos que deseemos clonar. Adem´as, la aplicaci´on Acronis True Image nos permite guardar las im´agenes de los discos duros que deseemos en un servidor FTP, con las ventajas que ello supone: cuando deseemos instalar un equipo a partir de una imagen, solamente debemos arrancarlo con el CD de la aplicaci´on, y seleccionar el servidor FTP donde se encuentran alojadas las im´agenes del

11

http://www.acronis.com/homecomputing/products/trueimage/

12

http://www.symantec.com/es/mx/norton/ghost

(30)

1.3. ESTADO DEL ARTE

equipo en cuesti´on. Este mecanismo puede resultar muy c´omodo cuando el n´umero de equipos que se desea instalar es muy bajo: pongamos, quince o veinte equipos, siendo generosos en la paciencia de la persona que vaya a ocuparse de las instalaciones. A mayor n´umero de equipos, el proceso de instalaci´on, puede resultar tedioso. En nuestro caso, disponiendo de 160 estaciones en el Campus de M´ostoles y 140 en el Campus de Fuenlabrada, resulta pr´acticamente no asumible. Adem´as de esta desventaja principal, hemos de a˜nadir que las diferencias entre las estaciones principales del laboratorio supone que se deba almacenar una imagen por cada modelo de estaci´on, ya que la clonaci´on asume que ´esta se realiza entre equipos id´enticos. En nuestro caso, disponemos en M´ostoles de 3 tipos principales de hardware en las estaciones de usuario y de tres tipos en el Campus de Fuenlabrada. Es por ello que decidimos plantearnos otros mecanismos de instalaci´on desatendida para realizar nuestro proceso de instalaci´on autom´atica.

Sin embargo, el m´etodo de la clonaci´on de disco nos vendr´a muy bien cuando tengamos que arreglar un disco que ha sido reemplazado (por ejemplo, por un problema de hardware) o cuando tengamos que instalar pocas m´aquinas (una o dos) y el resto ya est´en instaladas completamente. La raz´on de esta elecci´on es que el m´etodo de la clonaci´on es muy r´apido, y no supone la puesta en marcha de infraestructura adicional (como es el caso de los ficheros de preconfiguraci´on, que estudiaremos posteriormente).

En resumen, podr´ıamos decir que las ventajas y desventajas que aporta este m´etodo son: Como ventajas, el m´etodo de la clonaci´on es r´apido, sencillo y no requiere maquinaria adicional para ponerlo en marcha.

Como desventajas, podemos afirmar que este m´etodo puede ser complejo en caso de que el n´umero de estaciones sea elevado, exige hardware id´entico (al menos para una sola clonaci´on) y que realiza una instalaci´on no limpia del sistema.

Ficheros de preconfiguraci´on

Por ´ultimo, vamos a realizar un an´alisis del uso de ficheros de preconfiguraci´on para realizar instalaciones masivas y completamente desatendidas. El m´etodo de los ficheros de preconfiguraci´on (el t´ermino anglosaj´on es preseeds o ficheros semilla). Este m´etodo, que se encuentra disponible en Debian (y sus derivados) a partir de la versi´on de Sarge, consiste en incluir en un fichero de texto todas las indicaciones necesarias para la instalaci´on de o bien un sistema Debian completo (fichero de preconfiguraci´on para el proceso de instalaci´on) o bien un paquete en concreto. A trav´es de este m´etodo, conseguimos que todas las indicaciones o preguntas que el proceso de instalaci´on realiza al usuario, sean introducidas autom´aticamente sin necesidad de la interacci´on del usuario en ning´un momento en el proceso de instalaci´on (siempre que todas las respuestas sean introducidas en el fichero correspondiente). El fichero de semilla o fichero preconfiguraci´on es un fichero de texto legible por humanos, en el que se incluyen la preconfiguraci´on de cada pregunta en un formato concreto. Este formato, si bien no es a priori puede resultar un tanto complejo, es bastante autom´atico en cuanto a la forma de construir indicaciones para un proceso de instalaci´on. Cada indicaci´on se incluye en una l´ınea del fichero de texto, y contiene una especificaci´on en la forma clave/valor para cada paquete a instalar, incluido el proceso de instalaci´on (el proceso debian installer ).

Una de las ventajas principales de este m´etodo radica en que se puede automatizar todo el proceso de instalaci´on al completo, sin m´as que responder o incluir todas las indicaciones en el fichero de preconfiguraci´on correspondiente. Adem´as, estaremos realizando una instalaci´on limpia de un sistema (a diferencia del procedimiento de la clonaci´on de una partici´on o del disco duro). Esta instalaci´on sin duda es m´as conveniente para el sistema que replicar una instalaci´on ya hecha. Por otra parte, los ficheros de preconfiguraci´on son muy flexibles en el sentido que pueden

(31)

CAP´ITULO 1. INTRODUCCI ´ON

estar almacenados en un CD ya prefabricado (un CD de Debian en el que se ha modificado el arranque) o bien se pueden incluir en una memoria USB o incluso en la red, localizadas por una URL. Este m´etodo es especialmente potente y flexible, ya que facilita que el sistema pueda ser instalado completamente por la red, sin necesitar tan siquiera un CD de Debian para realizar la instalaci´on. Solamente necesitaremos la imagen correspondiente del arranque por red de la versi´on correspondiente que queramos instalar (disponible en cualquiera de los mirrors de Debian) y unas peque˜nas modificaciones en el arranque para que ´este use un fichero de preconfiguraci´on. Una vez hecho esto, tendremos un proceso de instalaci´on que no necesita soporte de instalaci´on (un CD, como tradicionalmente se ha instalado el Sistema Operativo) ni ninguna interacci´on con el usuario: tan s´olo ser´a necesario reiniciar el equipo y seleccionar arranque por red en la placa base para que el proceso comience, se instale correctamente y cuando haya finalizado el proceso, el equipo se reinicie y muestre el nuevo sistema al usuario. Como vemos, la idea es bastante atractiva: tan s´olo requiere reiniciar el equipo para realizar una instalaci´on.

En el cap´ıtulo Implantaci´on veremos los detalles t´ecnicos de este proceso, que si bien no requiere tan s´olo de fichero de preconfiguraci´on en cuesti´on (es necesario otras tecnolog´ıas paralelas, como arranque por red de Linux, puesta en marcha de un servidor que despache direcciones IP, etc´etera) no es complicado en exceso. Podemos resumir que el proceso de instalaci´on tiene las siguientes ventajas y desventajas principales:

Como ventaja, principalmente es la escasa interacci´on con el usuario que necesita (por no decir nula). La ´unica acci´on que se requiere por parte del usuario es reiniciar el equipo para que comience la instalaci´on (y esta acci´on no pertenece propiamente al proceso de instalaci´on). La instalaci´on del sistema es totalmente limpia (se formatea el disco duro, se crea la tabla de particiones, se instala el sistema completo partiendo de cero, se configuran todos los paquetes una vez ´este se ha instalado, etc´etera), lo cual es una ventaja con respecto al m´etodo de la clonaci´on. Por ´ultimo el poder realizar instalaciones por red es una ventaja bastante importante, en los tiempos en los que nos encontramos, en el que el uso de soportes de almacenamiento f´ısicos cada vez est´a menos extendido.

Como desventaja, podemos indicar que si bien este proceso es muy usado hoy en d´ıa por parte de administradores de sistemas, la documentaci´on del m´etodo de preconfiguraci´on es bastante escasa, por no decir nula. Si bien ya empiezan a existir proyectos de Debian dedicados ´unicamente a esta labor13

, hace un a˜no aproximadamente resultaba bastante complicado encontrar recetas de instalaciones desatendidas usando ficheros de preconfiguraci´on. Tambi´en cabe rese˜nar que el m´etodo de ficheros de preconfiguraci´on suele requerir la puesta en marcha y configuraci´on de tecnolog´ıas paralelas que no tienen que ver mucho con el proceso de instalaci´on, como veremos en el cap´ıtulo Implantaci´on.

1.3.3. Sistemas de autenticaci´on de usuarios

Otro de los puntos que es necesario debatir es el dise˜no e implantaci´on de un sistema de autenticaci´on de usuarios, necesario para que los alumnos puedan iniciar su sesi´on en las estaciones del Laboratorio. En este sentido, ser´a necesario analizar las tecnolog´ıas actuales que brindan un sistema de usuarios en red que proporcione la infraestructura necesaria para que una persona, en posesi´on de su nombre de usuario y contrase˜na pueda iniciar una sesi´on, independientemente del ordenador en el que se encuentre en ese momento (de ah´ı que sea un sistema de usuarios en red). En este sentido, vamos a estudiar tres sistemas de autenticaci´on principales. El primero de ellos, es el m´as rudimentario, bas´andose en el sistema tradicional de ficheros /etc/passwd y /etc/shadow con replicaci´on ante cambios.

13

http://sites.google.com/a/ibeentoubuntu.com/debian-preeseds/

(32)

1.3. ESTADO DEL ARTE

En segundo lugar, estudiaremos los sistemas m´as avanzados para implementar un sistema de usuarios en red, y m´as usados hoy en d´ıa, sobre todo la segunda alternativa que planteamos, LDAP, un protocolo basado en directorio bastante ligero y que es una de las alternativas m´as usadas hoy en d´ıa ante este tipo de problemas.

Mapa de usuarios local con replicaci´on

La primera soluci´on que nos planteamos es la implantaci´on de un mecanismo de autenticaci´on basado en un mapa de usuarios locales que se replique a lo largo de todas las m´aquinas que componen el laboratorio. El funcionamiento de este mecanismo por tanto, ser´ıa el funcionamiento cl´asico basado en los ficheros /etc/shadow y /etc/passwd superponiendo por encima un mecanismo que permita replicar estos ficheros en todas las estaciones que componen nuestro entorno.

Este mecanismo de replicaci´on se puede llevar a cabo de muy diferentes maneras. Por ejemplo, implementando un monitor que sondee los cambios en ambos ficheros en una m´aquina concreta (en la que se producen los cambios, por ejemplo) y vaya propagando estos cambios entre aquellas m´aquinas interesadas. Esta replicaci´on se puede llevar a cabo mediante una transmisi´on simple de ficheros usando SSH (usando el comando SCP, por ejemplo).

Otra decisi´on a tomar ser´ıa si los cambios lo solicitan los clientes, o es una ´unica m´aquina la que propaga los cambios cuando estos se produzcan. En cualquier caso, estas decisiones pertenecen al mecanismo de propagaci´on de cambios que este mecanismo incorporar´ıa. Lo fundamental de este mecanismo es comprender que los mecanismos para a˜nadir y borrar usuarios, as´ı como cambiar una contrase˜na, por ejemplo, son los mismos que en un sistema Linux/Unix tradicional (al basarse en los ficheros tradicionales de usuarios de cualquier sistema Unix).

Sin embargo, este sistema adolece de muchos problemas para ser llevado a la pr´actica. Como desventaja principal, la escalabilidad del sistema, que se puede convertir en insostenible. Si el n´umero de m´aquinas es relativamente alto, la propagaci´on de cambios puede convertirse en un verdadero problema, cuando a˜nadamos muchas cuentas en muy poco tiempo, o simplemente realicemos un cambio en los datos de los usuarios, a parte de convertirse en un cuello de botella. Adem´as, si elegimos un dise˜no en el que solo se pudieran modificar datos en una sola m´aquina, nos deber´ıamos preguntar qu´e pasar´ıa si un usuario decide cambiar su contrase˜na (una acci´on bastante frecuente). ¿Deber´ıa iniciar una sesi´on en esa m´aquina y entonces cambiar la contrase˜na? ¿Deber´ıa poder cambiar la contrase˜na en la m´aquina en la que se encuentra, y que esta informara a la m´aquina maestra de que se ha producido un cambio? Como vemos, la acci´on m´as simple que puede darse en un esquema de cuentas en red, como cambiar una contrase˜na, puede convertirse en algo bastante complicado usando este esquema. Sin embargo, a˜nadir y borrar cuentas, as´ı como cambiar una contrase˜na en la m´aquina maestra es extremadamente simple, usando directamente comandos del sistema para realizarlo (eso s´ı, siempre que sea el administrador el que realice estos cambios). Debido a que el n´umero de pros es mayor a las ventajas que puede ofrecernos esta tecnolog´ıa, en principio decidimos estudiar otras alternativas para nuestro dise˜no de cuentas en red. Sin embargo y como rese˜na, cabe destacar las ventajas y desventajas de la citada tecnolog´ıa: Como ventaja, podemos decir que un sistema de usuarios locales con replicaci´on o propagaci´on de cambios es bastante simple para a˜nadir y borrar usuarios, as´ı como para cambiar contrase˜nas, ya que siempre se usan los comandos est´andar del sistema para esta labor (siempre y cuando los realice un administrador o un usuario con privilegios).

Como desventaja podr´ıamos destacar que se producen un gran problema de escalabilidad en este dise˜no, adem´as de tener que dise˜nar un sistema completo de propagaci´on de cambios que sea lo suficientemente bueno como para asumir el volumen de datos de cuentas que nos

(33)

CAP´ITULO 1. INTRODUCCI ´ON

proponemos. Adem´as, este dise˜no tiene serios problemas de concurrencia, que pueden darse cuando dos administradores realicen modificaciones en la cuenta de un usuario.

NIS

Las p´aginas amarillas NIS14

, tambi´en llamadas Sun Yellow Pages es una tecnolog´ıa de cuentas de usuario en red (aunque tambi´en puede ser usado para otros menesteres), desarrollada principalmente por Sun Microsystems en los a˜nos de los 90.

Esta tecnolog´ıa es la que inicialmente se usaba en los Laboratorios de Linux de la Universidad antes de evaluar soluciones m´as avanzadas de cara al aumento tanto de estaciones instaladas en los Laboratorios como de usuarios en posesi´on de una cuenta.

La tecnolog´ıa NIS se basa en llamadas RPC entre cliente y servidor para el intercambio de informaci´on sobre usuarios en sistemas distribuidos, tales como el que nos ocupa. El software que implementa tal funcionalidad se compone de un servidor, una biblioteca para el lado del cliente y varias herramientas de administraci´on. En concreto NIS funciona de tal forma que la informaci´on contenida en los ficheros /etc/passwd, /etc/shadow y /etc/group se puede distribuir a lo largo de una LAN de tal forma que el efecto es como si los citados ficheros fueran locales a la m´aquina en la que nos encontramos. En cierto modo, el funcionamiento es muy similar a tener un fichero /etc/passwd, /etc/shadow locales, ya que las herramientas para a˜nadir y borrar usuarios as´ı como cambiar una contrase˜na son las est´andares de Unix, con la ´unica excepci´on que ha de realizarse en el servidor que proporciona la informaci´on NIS. En el resto de hosts es necesario realizar llamadas RPC para realizar consultas sobre los datos de los usuarios.

En particular este esquema es bastante simple, y muy funcional: estuvo funcionando perfectamente durante aproximadamente 5 a˜nos en los Laboratorios sin muchos problemas. En cuanto a requerimientos t´ecnicos, solamente se necesita un servidor que almacene la informaci´on de los usuarios, y conocimientos b´asicos de administraci´on de usuarios en sistemas Unix. Con esto, es suficiente para poder construir un sistema de cuentas en red basado en NIS.

Sin embargo, hay dos problemas fundamentales para este esquema, que desarrollamos a continuaci´on:

La escalabilidad ´unicamente hay un servidor NIS de cuentas de usuario con todo lo que ello conlleva: protecci´on ante fallos, cuellos de botella, etc´etera. Sin embargo, cabe destacar que en los a˜nos que esta soluci´on estuvo implantada en los Laboratorios, no se produjeron en ning´un momento cuellos de botella significativos, ante un laboratorio de aproximadamente 90 estaciones de trabajo, lo que deducimos que se debe a lo ligero del protocolo, entre otras cosas. Por tanto, lo m´as preocupante es la protecci´on ante fallos y ca´ıdas repentinas del servidor que puedan producirse en cualquier momento.

La seguridad de los datos en la red. Usando esta soluci´on, los datos de los usuarios viajan en claro por la red, con todo lo que ello conlleva. La informaci´on relativa al nombre de usuario, directorio personal de los mismos viaja totalmente en claro, y las contrase˜nas de las cuentas viajan cifradas con un mecanismo de cifrado sim´etrico, con lo que el romper este cifrado es bastante sencillo. Hoy en d´ıa no podemos asumir que esto ocurra. Cualquier usuario malicioso que pueda ponerse entre medias de un cliente y del servidor NIS podr´a captar datos de cualquier usuario del sistema. Se hace necesario por tanto a˜nadir un mecanismo que cifre los datos de los usuarios cuando estos viajan entre cliente y servidor, mecanismo que a d´ıa de hoy no posee la tecnolog´ıa NIS de Sun.

14

NIS son las iniciales de Network Information Service

(34)

1.3. ESTADO DEL ARTE

Por tanto, debido a estas principales desventajas y a ser un producto tecnol´ogicamente desfasado, nos vemos obligados a estudiar otras tecnolog´ıas para llevar a cabo el sistema de usuarios en red.

LDAP

Por ´ultimo, nos planteamos el estudio de una soluci´on basada en directorio, usando para ello el est´andar LDAP15

. LDAP es una tecnolog´ıa de reciente aparici´on que gestiona un directorio en una base de datos que puede servir en principio para dar servicio a muy dispares aplicaciones, aunque sin duda, una de las m´as usadas hoy en d´ıa es la autenticaci´on de usuarios ya sea en sistemas operativos tipo Unix (como el que nos ocupa) o m´aquinas Windows (a trav´es de la creaci´on de cuentas Samba).

En nuestro caso, solamente usaremos el directorio LDAP para la autenticaci´on de usuarios en m´aquinas Unix. Aunque una vez puesto en marcha el servicio, se puede utilizar para muy diversos fines (aparte del descrito) como por ejemplo, la informaci´on de hosts en la red, o como servicio de libreta de direcciones. Como tal, LDAP es un est´andar detallado como tal en la RFC16

correspondiente17

.

Habitualmente, un servidor LDAP almacena informaci´on de un usuario de la red, tal como su nombre de usuario y su contrase˜na, aunque puede incluir informaci´on adicional como nombre de la persona, ubicaci´on f´ısica, foto personal, etc´etera. En definitiva, podemos afirmar que LDAP es un protocolo de acceso unificado a un conjunto de informaci´on sobre una red.

En nuestro caso vamos a utilizar este servicio para almacenar la informaci´on de las cuentas de usuario del sistema, particularmente y como informaci´on fundamental, su nombre de usuario y contrase˜na. Aunque por supuesto, tambi´en ser´a necesario almacenar otro tipo de informaci´on, como el nombre y apellidos del usuario en cuesti´on, correo electr´onico, etc´etera. La tecnolog´ıa LDAP como tal y dado a que ´unicamente describe un protocolo, es implementada por numerosas aplicaciones con muy diferentes licencias. Los gigantes inform´aticos han querido hacer suya esta tecnolog´ıa y han liberado aplicaciones que implementa de forma muy diferente (y con unos nombres muy diferentes) un servicio de directorio basado en LDAP. En concreto, Microsoft distribuye la aplicaci´on Active Directory, bajo la cual se almacena informaci´on de usuarios, recursos de la red, pol´ıticas de seguridad, configuraci´on, y asignaci´on de permisos, entre otras cosas, en entornos de redes Windows. Ni que decir tiene que se trata de una soluci´on comercial y por tanto, de pago, por lo que para nosotros queda descartada autom´aticamente, debido a la naturaleza del entorno en el que nos encontramos.

Otro producto muy similar es el liberado por Novell, Novell Directory Services. Esta aplicaci´on es la implementaci´on de Novell utilizada para manejar el acceso a recursos en diferentes servidores y computadoras de una red en la que se representan como objetos los servicios m´as usuales en una red, como una impresora, una estaci´on, un servidor, un servicio, una persona, etc´etera. Una vez definidos los objetos en la base de datos, se asignan los permisos para el control de acceso. Dado que esta soluci´on tambi´en es una soluci´on comercial, no nos planteamos abordarla en nuestros objetivos.

Por ´ultimo, la aplicaci´on OpenLDAP es una implementaci´on del protocolo LDAP basada en el concepto de software libre desarrollada por el proyecto OpenLDAP, que comienza aproximadamente en el a˜no 1998. Esta implementaci´on del est´andar LDAP, esta incluida en la mayor´ıa de distribuciones Linux m´as usadas hoy en d´ıa (por supuesto se encuentra en las basadas en Debian GNU/Linux, como Ubuntu). La implementaci´on incluye un servidor (llamado slapd ),

15

LDAP son las siglas de Lightweight Directory Access Protocol o Protocolo ligero de acceso a directorio

16

RFC son las siglas de Request for comments y es un documento t´ecnico que describe el comportamiento de un protocolo de red.

17

Referencias

Documento similar

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

 Tejidos de origen humano o sus derivados que sean inviables o hayan sido transformados en inviables con una función accesoria..  Células de origen humano o sus derivados que

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

En este sentido, puede defenderse que, si la Administración está habilitada normativamente para actuar en una determinada materia mediante actuaciones formales, ejerciendo

Como  parte  de  las  aplicaciones  que  se  usarán  por  la  herramienta  que  se  desarrollará  se  encuentra  mksquashfs,  la  cual  es  una  aplicación 

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el