Sunteți pe pagina 1din 80

Curso de Administracin de Sistemas UNIX (Linux).

Fernando Martn Rodrguez.

TEMARIO DEL CURSO SOBRE LINUX


1) Introduccin (1 hora). 2) Comandos Avanzados (2 horas). 3) Instalacin de Linux, Distribuciones (2 horas). 4) Gestin de Usuarios, Permisos (1 hora). 5) Fundamentos de Redes y TCP/IP (2 horas). 6) NIS (Network Information System) (2 horas). 7) NFS (Network File System) (1 hora). 8) Gestin de Impresoras (1 hora). 9) Protocolos no Nativos (2 horas). 10) DNS (Domain Name System) (2 horas). 11) Servicios de Correo: sendmail (1 hora). 12) Servicios Web: apache (1 hora). 13) Otros Servicios: inetd, ftp, telnet (1 hora). 14) Introduccin a la Seguridad (1 hora). TOTAL: 20 horas.

TEMA 1 .- INTRODUCCIN
UNIX es un sistema operativo que se empez a desarrollar en los laboratorios Bell a finales de los aos 60. Entonces los laboratorios Bell pertenecan a la empresa AT&T y ahora son parte de Lucent Technologies (AT&T tuvo que dividirse debido a la legislacin contraria a los monopolios del gobierno norteamericano). Posteriormente, el desarrollo de UNIX pas de la empresa privada al mundo universitario (concretamente, a la Universidad de Berkeley que cre las versiones conocidas como UNIX BSD). A partir del UNIX BSD, las grandes empresas de informtica se dieron cuenta del potencial negocio que supona este sistema y lanzaron las primeras versiones comerciales. UNIX ha sido, y es, uno de los sistemas ms utilizados para dar servicios de red de todo tipo, su utilizacin como mquina de sobremesa es ms limitada pero existe en universidades y grandes empresas. En este curso se pretende realizar un primer aprendizaje en la administracin de sistemas UNIX. Aunque en el curso se usar siempre el sistema Linux, la mayora de las nociones aprendidas sern aplicables a otros sistemas UNIX. La aplicabilidad, o no, fuera de Linux de cada cuestin concreta se comentar en cada apartado particular. Actualmente, los sistemas UNIX de mayor presencia en el mercado son los siguientes: - Linux: es un sistema gratuito creado con el modelo de desarrollo abierto (mltiples voluntarios de todo el mundo comparten el cdigo fuente y realizan las aportaciones que consideren oportunas; una comisin de expertos decide qu aportaciones merecen pasar al cuerpo oficial del sistema operativo; no hay ninguna condicin para enviar aportaciones, cualquiera con conexin a INTERNET puede hacerlo). Este es el sistema que actualmente posee el mayor crecimiento. Las razones para ello son el bajo coste y la gran calidad del sistema. En sus inicios produjo muchas reticencias en las empresas debido a la no existencia de un servicio al cliente oficial. Hoy da, el modelo de desarrollo abierto ha demostrado responder a los problemas que se le presentan mucho ms rpido que las empresas comerciales (cuando se detecta un fallo grave en el sistema, se dispone del parche en cuestin de horas). Muchas empresas (como Caldera, RedHat e, incluso, IBM) ofrecen hoy servicios de consultora sobre Linux que hacen las veces de un servicio oficial. Adems, Linux es el nico UNIX de los que mencionaremos que sigue al 100% el estndar POSIX (Portable Operating System Interface). Esta es una especificacin conjunta del IEEE y el gobierno U.S.A. que fija unos mnimos comunes a cumplir por todo sistema operativo que vaya a ejecutarse en un servidor. Tericamente, el gobierno norteamericano no utiliza sistemas que no sean POSIX (en la prctica, s lo hace). - Solaris: es el UNIX de Sun. Es el UNIX comercial que ms se parece a Linux y el que mayor grado de cumplimiento alcanza con el estndar POSIX. Es uno

de los ms extendidos, sobre todo en las empresas que suministran acceso a Internet. ltimamente, est sufriendo mucho por la competencia de Linux. - HP-UX: es el UNIX de HP. Es el ms diferente a Linux y el que menos cumple el estndar POSIX. Los partidarios ms radicales de Linux dicen que HP-UX es tan diferente de los otros sistemas, que no merece ser calificado como UNIX. Su mayor parque instalado lo tiene en empresas dedicadas al diseo ingenieril/arquitectnico por ordenador (CAD). Actualmente tiene crecimiento negativo. La mayora de sus usuarios lo estn sustituyendo por sistemas basados en Windows. - AIX: el UNIX de IBM. Sufre las mismas crticas que HP-UX por ser un sistema excesivamente propietario. Sin embargo, su grado de cumplimiento de POSIX es mayor que la versin de HP. Su uso se centra en las grandes corporaciones que tienen contratos exclusivos con IBM (sobre todo los bancos). Este curso hace hincapi en las cuestiones de administracin de equipos en red TCP/IP. El estudio de otras cuestiones de administracin como los comandos avanzados y la creacin de scripts es ms limitado. Esto se debe a la experiencia de cursos anteriores en los que el inters mostrado por el alumnado era mucho mayor en los temas relacionados con las redes TCP/IP. Concretamente, se estudiar como implementar diferentes servicios de red utilizando Linux como servidor. Veremos tambin como acceder a esos servicios desde Linux y, tambin, desde otros sistemas operativos. Esta documentacin se ha pensado desde el punto de vista de que dar toda la informaci exhaustiva sobre cada tema es imposible. Primero, por su extensin y, despus, porque los detalles de ms bajo nivel son muy dependientes de la versin. Lo que s se ha hecho es dotar a cada tema de una seccin donde se indica dnde buscar informacin ms detallada, la mayora de los apartados de estas secciones son enlaces URL (donde siempre encontraremos la versin actualizada). Esta documentacin debe entenderse como una gua de descripciones breves que nos indican cmo profundizar. Si se recopilase la documentacin completa sobre todos los temas, tendramos un taco de papel de ms de un metro de altura. Adems, es imposible saber en qu parte del temario va a querer profundizar cada alumno. Para un buen seguimiento del curso sera conveniente un conocimiento previo de los comandos simples del sistema operativo (los que permiten manejar ficheros y directorios, los editores sencillos... ). En el captulo 2, dedicado a comandos avanzados se incluye un pequeo resumen de los comandos ms bsicos para que los alumnos que no los conozcan puedan introucirse en el tema.

Referencias Comentadas: http://www.linux.org .- Pgina oficial del sistema linux. Comenta la actualidad del sistema, en qu paquetes se est trabajando actualmente... Contiene un enlace al Linux Documentation Project (que contiene toda la documentacin oficial de Linux). La documentacin se divide en: Guas (manuales extensos sobre temas generales) y HOWTOs (textos ms breves, cada howto trata de la resolucin de un problema concreto, ejemplos: firewall-howto, sound-howto). http://lucas.hispalinux.es .- Pgina oficial del proyecto LuCAS (Linux en CAStellano). Contiene los manuales oficiales traducidos al espaol. http://standards.ieee.org/catalog/posix.html .- Pgina del IEEE sobre POSIX. Contiene los documentos que definen el estndar. http://cm.bell-labs.com/cm/cs/upe/index.html .- En esta direccin se habla del libro: The Unix Programming Environment de los autores Brian W. Kernighan y Rob Pike. Este libro, nos habla del primer diseo de UNIX en los laboratorios Bell y de cmo el UNIX fue diseado por y para programadores en C. El libro ha sido traducido al espaol por Prentice-Hall Hispanoamericana (ISBN 968-880-067-8). http://www.sun.com/solaris .- Pgina oficial de Solaris. http://www.hp.com/products1/unix/operating/index.html .- Pgina oficial de HP-UX. http://www-1.ibm.com/servers/aix .- Pgina oficial de AIX.

TEMA 2 .- COMANDOS AVANZADOS


1 .- Introduccin: En este captulo se pretende que el lector aprenda los comandos ms habituales del administrador. Hemos llamado a estos comandos avanzados. Esto no significa que no puedan ser usados por los usuarios normales, sino que son comandos complejos y poco conocidos por los principiantes. Para los alumnos que no conozcan los comandos ms bsicos se incluye un pequeo resumen sobre ellos que no ser objeto de prctica en el curso (pero se recomienda su lectura si se tienen problemas con estos comandos). No se harn descripciones muy exhaustivas porque ese tipo de informacin ya est presente en la ayuda en lnea (comando man que es el primero que se describe en el apartado de comandos bsicos). Para empezar, debemos saber que los detalles especficos de un comando pueden variar con la versin de UNIX o Linux que tengamos instalada y esos detalles los encontraremos siempre actualizados en las ayudas del comando man. Debemos hacer notar, antes de empezar las descripciones individuales, que el formato de todos los comandos es como sigue: comando [op1 op2 .....] [arg1 arg2 .....] Esto es: primero el nombre del comando, despus las opciones (que, si estn presentes, modifican el comportamiento) siempre con guiones y despus el nmero de argumentos adecuado (que sern los objetos sobre los que efectuar la accin, por ejemplo: ficheros). Muchas veces, es posible poner las opciones concatenadas y con un solo guin: comando [op1op2 .....] [arg1 arg2 .....] El nombre de las opciones suele ser coherente: esto es hay opciones que tienen el mismo significado para muchos comandos. Por ejemplo: la opcin R es admitida por todos los comandos que manejan ficheros y su significado es siempre: la accin se aplicar Recursivamente a todos los ficheros contenidos en subdirectorios del actual. Existen comandos que reciben el calificativo de privilegiados. Estos comandos afectan a la integridad del sistema y slo pueden ser ejecutados por el administrador (root). Pasamos ahora, pues, a describir brevemente las funciones de los comandos agrupndolos en conjuntos de naturaleza similar.

2 .- Comandos Bsicos: 2.1 .- Comandos de ayuda: * man: Este comando busca la informacin de ayuda presente sobre otro comando (que le especificamos). Cada vez que se instala un programa, el programa de instalacin debera instalar tambin la informacin necesaria para que man nos d la ayuda adecuada. Ejemplo: man ls, hace que salga por la pantalla la informacin disponible sobre el comando ls. man no slo da ayuda sobre los comandos sino tambin sobre las llamadas al sistema disponibles desde C y sobre el formato de los ficheros de configuracin. 2.2 .- Comandos de manejo de ficheros: * ls: es el equivalente al dir del DOS. Busca ficheros y nos muestra la informacin contenida en la tabla del directorio: nombre, fecha de ltima modificacin... * mkdir: crea un directorio. * rmdir: borra un directorio (slo si est vaco). * touch: si el fichero sobre el que se aplica no existe lo crea, si existe le pone la fecha y hora actuales. * cd: cambia el directorio actual. * cp: copia ficheros. * rm: borra ficheros. * mv: mueve ficheros, esto es: copia y borra el original. Tambin se usa para cambiar el nombre (que es un caso particular de mover). * which: busca un ejecutable en el path. til para saber si determinado programa est instalado o no. * cat: muestra el contenido de un fichero. Si es de texto podremos leerlo, si no el resultado es ilegible. Ejemplos: hacer cat /dev/hda1 o cat /proc/kcore. * more: muestra el contenido de un fichero paginndolo. * find: busca ficheros que cumplan determinados criterios.

* ln: crea enlaces (similares a los accesos directos). Los hay de dos tipos: simblicos y no simblicos. 2.3 .- Comandos auxiliares: Estos comandos, aunque tericamente tienen sentido por si solos, se suelen usar en combinacin con otros usando pipelines. Una pipeline es una combinacin de comandos de la forma: comando1 | comando2, donde la salida del primer comando es la entrada del segundo. * grep: busca cadenas de caracteres. til para encontrar ficheros, procesos... * xargs: el primer argumento indica una accin. Esa accin se aplica a cada uno de los otros argumentos. til en ciertas operaciones automticas. 2.4 .- Comandos de control de procesos: * ps: muestra los procesos activos. * kill: elimina un proceso. * top: da una instantnea de varios procesos activos y otra informacin de inters sobre el sistema. 3 .- Comandos Avanzados: 3.1 .- Comandos de backup: * tar: permite crear/recuperar backups. Comando muy complejo y con muchas opciones. * gzip/gunzip: comprime/descomprime (formato compatible con winzip). Esto tambin se puede hacer con otros compresores (compress/uncompress, bzip2, existe un comando unarj capaz de descomprimir ficheros del popular compresor de DOS arj). * gzcat: permite ver el contenido de un archivo comprimido sin descomprimirlo primero.

3.2 .- Comandos de manejo de discos: * dd: permite crear diskettes de arranque. * fdisk: permite crear/borrar particiones. Es un comando privilegiado, es decir: slo lo puede ejecutar el administrador (root). * mkfs: permite crear la estructura de informacin en una particin (formatear). Tambin es un comando privilegiado. * mount: permite acceder a un sistema de ficheros (una particin de disco duro, un diskette, un disco de red compartido). Tambin es un comando privilegiado. * umount: sirve para indicar que ya no queremos seguir accediendo a uno de los sistemas de ficheros que activamos con mount. Tambin es un comando privilegiado. * swapon/swapoff: permite activar/desactivar el swap (memoria virtual). Tambin es un comando privilegiado. 3.3 .- Comandos de administracin: Son todos privilegiados. * dpkg: permite instalar/desinstalar paquetes debian. * insmod: permite instalar mdulos (drivers) en el kernel (ncleo) del sistema operativo. * lsmod: permite saber qu mdulos hay instalados en el kernel. * rmmod: desinstalar mdulos del kernel. * adduser: crea cuentas de usuario. 3.4 .- Comandos de configuracin de red: Si se ejecutan sin ser administrador slo dejan ver la configuracin, si se es administrador se puede cambiar. * ifconfig: ver/modificar la configuracin de la(s) interface(s) de red. * route: ver/modificar la tabla de rutado IP.

* netstat: ver el estado de la red. * arp: ver/modificar la tabla del protocolo ARP. 10 .- Otros comandos: * su: permite pasar a la cuenta de otro usuario (pide la clave).

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. Los que interesan para este tema seran: 1. Linux Instalacin y Primeros Pasos, de Matt Welsh. Traduccin de la versin 2.2.2 del libro Linux Installation and Getting Started (traduccin coordinada por Alfonso Belloso). Se trata de un libro de introduccin, ideal para principiantes. 2. Gua del Usuario de Linux, de Larry Greenfield . Traduccin del libro Linux User's Guide (traduccin coordinada por Csar Ballardini). Es un libro para todos los usuarios de GNU/Linux. ftp://www-wks.acs.ohio-state.edu/sysadm_course/sysadm_book.ps .- Este documento es el libro "UNIX System Administration", de F. G. Fiamingo (de la Universidad Ohio State, U.S.A.). Se trata de un texto excelente sobre la instalacin y administracin de sistemas UNIX que particulariza los ejemplos para Solaris e IRIX (Silicon Graphics). Linux in a Nutshell de Ellen Siever (editorial O Reilly & Associates Inc). Este libro pertenece a la coleccin Nutshell de la editorial OReilly (esta es una coleccin de enorme prestigio en el mundo de los libros tcnicos sobre redes y sistemas operativos). Contiene una extensa y nutrida seccin de los comandos usados en Linux de casi 160 pginas en donde se detallan todos los comandos del sistema.

TEMA 3 .- INSTALACIN DE LINUX, DISTRIBUCIONES


1 .- Introduccin: En este captulo vamos a ver las lneas generales del proceso de instalacin de una mquina Linux. Este proceso es el mismo tanto si nuestra mquina va a actuar como servidor como si lo va a hacer como estacin de trabajo (mquina de sobremesa). Como parte de la introduccin, introduciremos ahora un breve listado comentado de las alternativas que existen al sistema Linux a la hora de instalar un servidor cualquiera (servidor: una mquina que proporciona determinado servicio o servicios a otras, el servicio puede ser comparticin de disco, impresin, correo... ). Las alternativas a Linux son: - Novell Netware: muy robusto y probado. El defecto fundamental es slo disponer de servicios locales (disco e impresoras). Se hicieron intentos de aadirle conectividad TCP/IP pero sin grandes resultados. Hoy en da, conserva cierta base instalada pero est en decrecimiento. - OS/2 + Lan Server: se basa en protocolo NETBIOS. El problema fundamental del NETBIOS es que no tiene nivel 3 => no es enrutable y slo sirve para uso local (ver tema 5). Nunca pudo superar comercialmente a soluciones ms asentadas como Novell o Windows-NT. Hoy en da, podemos considerarlo un fracaso. - Windows-NT/2000: tambin empez basndose en NETBIOS para luego evolucionar a TCP/IP. Tuvo muchos problemas de estabilidad en las primeras versiones. La versin 4.0 ha super gran parte de esos problemas y por eso consigui barrer, prcticamente, a Novell del mercado de las pequeas redes. La versin 2000 todava no est muy madura y muchas empresas son reticentes a instalarla. Actualmente, es el nmero 1 del mercado pero seguido cada vez ms de cerca por Linux. - UNIX: sin duda, es el S.O. de mejor concepcin tcnica de la historia. Los protocolos TCP/IP estn incluidos en el ncleo del sistema. Es, con mucho, el sistema ms estable. La gestin de memoria y la implementacin de la multiltarea no han sido superadas por ningn otro sistema. El mayor problema de UNIX es la multiplicidad de versiones. Actualmente, las ms extendidas son: Solaris (Sun), Linux, SCO (otro sistema para PC, este comercial), IRIX (Silicon Graphics), DEC UNIX (Digital), HP-UX (HP) y AIX (IBM). Se ha definido una especificacin estndar (POSIX) que deberan cumplir todos los sistemas UNIX (ver tema 1). Linux cumple POSIX al 100%, Solaris y SCO no tanto, los dems estn muy lejos de cumplirlo. Otro problema de UNIX es que requiere de mayor estudio y esfuerzo por parte de los administradores. Otra cuestin que abordaremos en este tema es la multiplicidad de distribuciones de Linux; tema que, a veces, confunde a los nuevos usuarios. Se escoja la distribucin que se escoja, Linux siempre es el mismo. Las diferentes distribuciones slo se

diferencian en el programa de instalacin y en el mantenedor de paquetes (programa que permite instalar/desinstalar aplicaciones una vez que la mquina est ya montada). Cada distribucin guarda los paquetes (alicaciones) en ficheros de un tipo determinado (.tgz en Slackware, .rpm en RedHat, .deb en Debian... ) pero debemos tener muy claro que si vemos un paquete llamado apache.deb y otro apache.rpm se trata de la misma aplicacin, con las mismas prestaciones y la misma configuracin (siempre que la versin sea la misma, claro). Podemos pensar que se trata del ficheros iguales, uno de ellos con el formato del mantenedor de paquetes de Debian y otro con el de RedHat. De hecho existe una aplicacin llamada alien (que viene en todas las distribuciones y que permite convertir paquetes de un formato a otro). 2 .- Distribuciones de Linux: En este apartado vamos a describir las distribuciones ms importantes comentando algunas de las diferencias (debe recalcarse que lo ms importante es que todas ellas son el mismo sistema, 100% compatible). - Debian: Es una distribucin creada sin nimo de lucro por lo que suele ser la preferida por los grandes partidarios de Linux (la distribucin de los muy cafeteros). Desde un punto de vista tcnico Debian se distingue por ser ms difcil de usar que otras pero tambin ms potente (el mantenedor de paquetes tiene ms opciones, informa de los conflictos entre aplicaciones... ). Debian es la distribucin ms extendida en el mundo universitario y ser la distribucin que usaremos en el curso. El formato de paquete es .deb. - Slackware: Tambin sin nimo de lucro, Slackware es la primera distrbucin que existi. Aunque ha perdido a muchos usuarios (que generalmente se ha cambiado a Debian) conserva a algunos partidarios (la distribucin de los nostlgicos). Tcnicamente es muy limitada, el mantenedor de paquetes es muy arcaico y la instalacin no es demasiado simple. Como ancdota, ha sido creada y sigue siendo mantenida por una sola persona: Patrick Volkerdin (uno de los gurs histricos del desarrollo de Linux). El formato de paquete es .tgz. - RedHat: Se trata de la primera distribucin comercial. La filosofa es: la distribucin puede obtenerse gratis por Internet o puede comprarse a precio casi simblico en un CD (slo cobran el CD y el manual); pero si se paga ms se obtienen servicios adicionales, esto es: soporte tcnico a diferentes niveles. Tambin se proporcionan servicios profesionales: consultora, formacin, proyectos usando Linux... Con este modelo de negocio, RedHat ha llegado a cotizar en la bolsa de Nueva York. RedHat es, con mucho, la distribucin ms extendida hoy da debido, sobre todo, a su mayor facilidad de uso. Las empresas que han instalado Linux confan casi exclusivamente en esta distribucin. El gestor de paquetes es ligeramente inferior al de Debian (por ejemplo, no informa de los conflictos entre aplicaciones) pero RedHat es ms amable, ms grfico... El formato de paquete es .rpm. - Mandrake: Esta es una distrbucin, tambin comercial, hecha a partir de RedHat (tambin usa los paquetes tipo .rpm). Bsicamente, Mandrake es un RedHat con una aplicacin de instalacin mejorada (muy trabajada para

proporcionar una instalacin muy automtica y fcil). Mandrake incluye el sistema de ventanas KDE (que tambin se puede instalar en otras distribuciones aunque no venga de serie). KDE es un sistema diseado para ser muy amable con el principiante y Mandrake lo recomienda para usuarios acostumbrados a Windows. Mandrake depende de la empresa Mandrake Soft que, adems del modelo de negocio tipo RedHat, desarrolla aplicaciones para Linux que no son libres (o sea: que las vende aparte). - Caldera: Se trata de otra distribucin comercial de la empresa del mismo nombre. Su formato de paquete tambin es .rpm. El modelo de negocio es como el de RedHat. Caldera trabaja tambin con otras versiones de UNIX y con la integracin de stas con Linux. - Suse: Distribucin comercial de la empresa alemana Suse. Su modelo de negocio es el de RedHat. De nuevo, el formato de paquete es .rpm. 3 .- Generalidades de la Instalacin de Cualquier UNIX: Vamos a ver ahora algunas generalidades de la instalacin de cualquier sistema UNIX (que, por supuesto tambin son vlidas para Linux). Se ha puesto esta parte por separado para que sirva tambin a cualquiera que desee instalar un sistema UNIX que no sea Linux. Instalar un S.O. UNIX no es una cuestin trivial y siempre es necesario recurrir a la documentacin especfica de la versin que vayamos a instalar. Sin embargo, podemos decir algunas generalidades. Toda instalacin de UNIX consta de las siguientes fases: a) Primero, es necesario arrancar la mquina con el sistema operativo que vamos a instalar. Esto es comn a todos los sistemas operativos que pueden realizar tareas de servidor. Este arranque se hace desde un mini-sistema instalado en un diskette, CD-ROM o cinta. Una vez estamos corriendo un UNIX mnimo podemos ejecutar las utilidades que nos permitirn completar la instalacin. b) El segundo paso es ejecutar un programa que permita hacer particiones en el disco duro. As podremos organizar nuestra instalacin. Es obligatorio destinar una particin al almacenamiento temporal (swap) del sistema (para esto se recomienda usar, por lo menos, un tamao igual al doble de la memoria Ram disponible). Suele ser buena costumbre dividir el resto del disco en particiones independientes para funciones independientes. Si vamos a tener un directorio compartido en red, deberamos colocarlo en una particin separada. Eso permitir reinstalar el sistema operativo sin borrar esa particin. Tambin es buena costumbre aislar en una particin el directorio "/var". Ese directorio es el que ms movimiento va a tener (ficheros temporales... ) , y la informacin all grabada es la ms sensible a prdida accidental. Su prdida no va a importar demasiado porque son ficheros temporales. Si est aislado, se puede reformatear la particin. Si no, posiblemente habr que reinstalarlo todo (y, a lo mejor, perderlo todo).

c) Despus de organizado el disco, es necesario ejecutar el programa de instalacin propiamente dicho. Este programa va a descomprimir y copiar los diferentes programas que forman el S.O. Generalmente los componentes se leen de cinta, CD-ROM o de la red (si hemos copiado el CD de instalacin en un servidor de disco). El programa de instalacin es interactivo y hace preguntas sobre qu utilidades instalar y los datos que permiten la conexin a red (nombre, direccin IP y mscara de subred). d) El ltimo paso es la eleccin/configuracin del ncleo. A veces este paso se integra en el anterior si una de las preguntas del instalador es qu ncleo queremos. El ncleo o kernel es el programa fundamental del S.O. El kernel contiene los drivers para todos los dispositivos hardware, gestiona la memoria, arranca y detiene las tareas, es responsable de los cambios de contexto y de la comunicacin entre procesos. Un kernel se construye compilando, a partir de las fuentes y con las opciones que correspondan a nuestro hardware. Las distribuciones de UNIX suelen traer kernels precompilados para las configuraciones ms tpicas. Si nuestra configuracin no corresponde con ninguno de los ncleos precompilados, deberemos compilar un ncleo a medida. Se han ideado diferentes maneras de simplificar la configuracin del ncleo. El ncleo de Solaris puede reconfigurarse sin compilar, editando ficheros de configuracin y rearrancando. El de Linux admite la opcin de "cargado/descargado de mdulos" (para aadir un dispositivo nuevo no hay que recompilar, sino decirle al kernel que cargue un nuevo driver al arrancar, se le dice con un fichero). En HP-UX se dispone de una herramienta que realiza la compilacin automtica en funcin de los parmetros que se le han introducido en una interfaz grfica de usuario. 4 .- Particularidades de Debian Linux: Expondremos ahora, muy brevemente, cmo son los pasos anteriores para el caso de Debian Linux. Esto es muy similar para las otras distribuciones de Linux (Red-Hat, Slackware, Suse, Mandrake...). Los pasos del apartado 3 en el caso de Debian Linux, se traducen a: a) Arranque: se hace desde CD o diskette. Si nuestro ordenador puede arrancar de CD basta con indicrselo en la BIOS y arrancar con el CD adecuado insertado (el CD har el resto). Para hacerlo con diskette, hay que generar un disco de arranque: el RESCUE. Ese diskette contiene el kernel de instalacin. El nombre RESCUE procede de que, una vez instalado el equipo, ese diskette puede usarse para solucionar situaciones de emergencia. Para generar este diskette se usa la utilidad RAWRITE.EXE (desde Dos), que suele venir en los CD-ROM's de linux. RAWRITE genera un disco linux a partir de un archivo fuente. Los archivos fuente tambin vienen en el CD-

ROM. Para el disco RESCUE usaremos el archivo RESC1440 (el RESC1200 se usara para arrancar con una unidad de 5.25 pulgadas). El diskette de arranque tambin se puede generar desde linux con el comando dd (hace falta tener otro ordenador con linux). b) Para hacer las particiones se usa el programa fdisk. Este es un programa interactivo que funciona ofreciendo al usuario una lnea de comandos. Uno de los comandos es "help" que permite aprender a manejarlo. c1) Debian (a diferencia de las otras distribuciones) se instala en dos fases. En la primera, se instala en disco duro un sistema que es siempre el mismo (no es configurable) y contiene las utilidades ms bsicas. Este sistema es ya arrancable desde disco duro, es decir: sta es la verdadera instalacin. El programa que realiza esta primera instalacin arranca automticamente desde el diskette o CD de arranque. c2) La segunda fase de la instalacin de Debian consiste en arrancar con el sistema instalado en c1 y correr un programa llamado dselect. dselect es parte del mantenedor de paquetes de Debian y nos presentar una enorme lista de aplicaciones para que seleccionemos cules queremos instalar. dselect, adems, impide que seleccionemos componentes incompatibles (o que carguemos un software que necesita de otro sin cargarlo tambin). Todas las aplicaciones se configuran automticamente con valores por defecto que aseguran un funcionamiento bsico (a veces, hacen preguntas para obtener los datos que necesitan). d) En el paso c1 ya se ha instalado un kernel que funcionar en la mayor parte de los casos. Este kernel dispone de mdulos que podramos definir como drivers para los elementos hardware ms comunes. En el mencionado paso c1 se nos preguntar que mdulos queremos cargar. Si intentamos cargar el correspondiente para un perifrico inexistente no nos lo permitir (despus de instalado existen utilidades que nos permiten aadir/quitar mdulos). Cuando ejecutamos dselect se nos ofrecen las fuentes del kernel. Las fuentes del ncleo son necesarias slo si necesitamos recompilarlo. Eso ltimo slo es necesario raras veces.

Referencias Comentadas: http://www.debian.org .- La direccin oficial de Debian. Tiene mirrors en todo el mundo (los mirrors son pginas clnicas que permiten mejorar la eficiencia al poder elegir la ms cercana). http://www.slackware.org .- Pgina oficial de The Slackware Linux Project. http://www.redhat.com .- Web corporativo de RedHat. http://www.linux-mandrake.com/es .- Web corporativo de Mandrake Soft. http://www.caldera.com .- Web corporativo de Caldera. http://www.suse.com .- Web corporativo de Suse. http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. El que ms interesa para este tema es: Linux Instalacin y Primeros Pasos, de Matt Welsh. Traduccin de la versin 2.2.2 del libro Linux Installation and Getting Started (traduccin coordinada por Alfonso Belloso). ftp://www-wks.acs.ohio-state.edu/sysadm_course/sysadm_book.ps .- Este documento es el libro "UNIX System Administration", de F. G. Fiamingo (de la Universidad Ohio State, U.S.A.). Se trata de un texto excelente sobre la instalacin y administracin de sistemas UNIX que particulariza los ejemplos para Solaris e IRIX (Silicon Graphics).

TEMA 4 .- GESTIN DE USUARIOS, PERMISOS


1 .- Introduccin En este tema se habla la gestin (creacin, borrado, modificacin) de usuarios y tambin de cmo se pueden establecer permisos para que los usuarios slo accedan a los datos y servicios que deben. Este tema est muy relacionado con el ltimo de seguridad como veremos al llegar all. 2 .- Gestin de Usuarios en UNIX y Linux 2.1 .- Fundamentos del sistema de usuarios, detalles de seguridad: Lo que es comn a todos los sistemas UNIX es la forma de almacenar la informacin relativa a los usuarios. Esa informacin se guarda en el directorio /etc (el directorio principal de configuracin de cualquier mquina UNIX). El fichero principal para la gestin de usuarios es el fichero /etc/passwd, ese fichero es un fichero ASCII que acta como una pequea base de datos de usuarios. Cada lnea del fichero es un registro (un usuario). Una lnea tpica de /etc/passwd podra ser:
fmartin:81s32DlMs/CC6:1000:100:FMR:/home/users/fmartin:/bin/tcsh

Los campos de este registro van separados por el carcter ":". El primer campo es el login o nombre de usuario (nombre dentro del sistema), en este caso fmartin. El segundo campo es la clave encriptada; ms adelante profundizaremos un poco ms en la encriptacin. El siguiente campo es el llamado uid o nmero identificador del usuario (en este caso 1000), realmente el sistema nunca usa el login sino el uid. Por motivos de legibilidad el sistema hace traducciones automticas entre login y uid. El siguiente campo es el llamado gid o identificador de grupo (en este caso 100). Ese nmero identifica al grupo primario del usuario. Todos los grupos tienen un nmero indetificador y tambin un nombre (los grupos se definen en otra base de datos que se guarda en el fichero /etc/group). El siguiente campo es un comentario que suele contener el nombre real del usuario (en este caso slo las iniciales). El siguiente campo es el directorio de arranque o HOME del usuario (en este caso /home/users/fmartin). El ltimo campo es la shell (o intrprete de comandos) con la que arrancar el usuario (en este caso /bin/tcsh). En los sistemas UNIX clsicos el fichero /etc/passwd tiene permisos de lectura universal. Esto debe ser as debido a que el proceso que pregunta la clave (login) corre con permisos normales (no es un proceso del administrador). Si ese proceso fuera un proceso de root y cualquier fallo de programacin lo interrumpiera en vez del login aparecera una shell de root en la pantalla. Por eso, es necesario que /etc/passwd sea un fichero propiedad del root pero que puedan leer todos.

Esa caracterstica obliga a que la password se grabe encriptada. Realmente, no se trata estrictamente de una encriptacin sino de una funcin de un slo sentido (una funcin biunvoca para la que es imposible expresar la funcin inversa de forma algebraica). La funcin es pblica pero la nica forma conocida de invertirla es la fuerza bruta, es decir: probar con todas las claves posibles. Se calcula que con una mquina capaz de probar un trilln de claves por segundo se tardara una media de 1050 aos en averiguar una clave. Existen, eso s, programas que prueban con todas las claves fciles, es decir: con las combinaciones basadas en el login y el nombre y apellidos del usuario (presentes normalmente en el fichero /etc/passwd). Estos programas tambin son capaces de probar con diccionarios en diferentes idiomas. En los principios de las redes, se deca que un programa de este tipo, en la mayor parte de los sistemas, sera capaz de averiguar la clave del 90% de los usuarios en menos de media hora. Esta es una buena razn para impedir que los usuarios usen claves triviales. Existen diferentes programas que impiden al usuario establecer una clave trivial. Se dice que el primer objetivo de un atacante externo es conseguir una copia del fichero de passwords para buscar claves dbiles. Algunos sistemas UNIX (como Solaris o Linux) permiten, opcionalmente, aumentar la seguridad del fichero de passwords. Esto es lo que se conoce como el sistema shadow passwords. Este sistema se basa en dividir la base de datos de usuarios en dos ficheros: /etc/passwd y /etc/shadow. El fichero /etc/passwd contiene todos los datos habituales menos la clave (en su lugar aparece una x). El fichero shadow contiene las mismas lneas que el fichero passwd pero, adems, contiene las claves. El fichero passwd es legible para todos los usuarios y el shadow slo para el administrador. El proceso de login en un sistema de este tipo se implementa con dos procesos: uno pide el login y la clave y el otro la comprueba. El que pide la clave corre con permisos normales y el que la comprueba con permisos de root. No hay peligro por tener un proceso con permisos de administracin porque ese proceso no tiene acceso a la consola, esto es: si se interrumpe, no aparecera una consola abierta. 2.2 .- Gestin de los usuarios: Vamos a ver ahora cmo se realizan las diversas tareas de gestin de usuarios. Estas tareas son las ms habituales de cualquier administrador. Para crear un usuario bastara con introducir la lnea adecuada en el fichero /etc/passwd (o en dos ficheros: passwd y shadow) y tambin habra que crear el directorio HOME de nuestro nuevo usuario. As (manualmente), era como se gestionaban usuarios en los primeros sistemas y, de hecho, sistemas tan avanzados como Solaris no incluyen ninguna herramienta de ayuda (muchos administradores se crean su propio script para la creacin de usuarios).

Las tareas de borrado y modificacin tambin pueden hacerse manualmente. Para borrar un usuario basta con borrar su registro en la base de datos. Y si se quiere modificar cualquiera de sus datos (grupo, directorio HOME...) se puede hacer editando ese registro. Las diferentes herramientas que se han ido introduciendo para facilitar la gestin de usuarios son especficas de cada sistema UNIX. Por ejemplo, en HPUX se pueden crear usuarios desde una aplicacin grfica llamada SAM que permite hacer configuraciones en todo el sistema. En Linux existen dos comandos que permiten gestionar usuarios: adduser (creacin) y userdel (borrado de usuarios, este ltimo comando deja como opcin el borrar tambin el directorio de ese usuario). Las modificaciones se suelen hacer editando manualmente. 3 .- El Sistema UNIX de Permisos: Supongamos que tenemos una shell (lnea de comandos) abierta en un ordenador UNIX y somos un usuario llamado fmartin. Supongamos tambin que tenemos en el directorio actual un fichero llamado pepe. Vamos a ejecutar la siguiente instruccin para conocer todas las caractersitcas de ese fichero: ls -lag pepe El sistema responde con lo siguiente: -rw-r--r-1 fmartin

users 1024 May 30 11:35

pepe

El 1 significa que slo hay un enlace fsico al fichero (dejaremos esto de lado porque no afecta a los permisos, el lector interesado puede consultarlo en las pginas del comando ln), el 1024 es el tamao en bytes y, evidentemente, May 30 11:35 es la fecha de la ltima modificacin. Hasta ahora hemos visto los datos que no afectan a la seguridad. fmartin es un dato muy importante: es el propietario del fichero. Un usuario es propietario de todos los ficheros que crea desde su cuenta (y copiar un fichero de otro usuario es tambin crear un fichero nuevo). Slo el administrador est autorizado a cambiar el propietario de un fichero (y puede hacerlo con el comando chown). users es el grupo al que pertenece el fichero (ojo: un fichero puede pertenecer a un grupo al que no pertenece su propietario, aunque no es frecuente). Aunque un usuario puede pertenecer a varios grupos, siempre hay uno principal o primario (un usuario puede conocer sus grupos ejecutando el comando groups). A este grupo pertenecern todos los ficheros que el usuario cree. Posteriormente, el usuario puede cambiar el grupo de estos ficheros con el comando chgrp (un usuario slo puede asignar un nuevo grupo a un fichero si l mismo pertenece al nuevo grupo). El

administrador s puede cambiar el grupo de un fichero aunque el propietario no pertenezca al nuevo grupo. rw-r--r-- son los permisos del fichero. Estos permisos son nueve bits que se agrupan de tres en tres. Cada bit puede estar a cero (se representa con un guin) o a uno (se representa con una letra). La letra es distinta dependiendo del significado del bit. El primer grupo de tres bits representa los permisos que el propietario del fichero tiene sobre ste. El segundo grupo de tres bits son los permisos concedidos a los usuarios que pertenecen al grupo (del fichero). El tercer grupo representa los permisos para todos los dems usuarios del sistema.

Permisos para el ejemplo que nos ocupa. Dentro de cada grupo cada bit tiene un significado especfico. Un valor de uno en ese bit permitir una determinada accin y un cero la impedir. Los tres bits de cada grupo son: - El bit r: Es el que se representa primero. Si est activo concede permiso a leer el fichero. Si el fichero es un directorio concede permiso a listar (con ls) el contenido. - El bit w: Es el que se representa en el centro. Si est activo concede permiso a modificar (editar) el fichero. Si el fichero es un directorio concede permiso a crear/borrar ficheros dentro. Ojo: no tener el permiso w sobre un fichero no implica que no se pueda borrar. Eso depende de los permisos sobre el directorio. - El bit x: Es el que se representa al final. Si est activo, concede permiso a ejecutar el fichero. Si el fichero es un directorio concede permiso a convertirlo en directorio activo (con cd). Tratndose de ficheros, el bit x slo tiene sentido en ejecutables. Si hacemos un shell script (anlogo a los ficheros .BAT del DOS) con un editor de texto, deberemos activar el bit x antes de poder ejecutarlo. A veces, tambin hay que activar el bit x manualmente porque el programa que acabamos de bajar de INTERNET ha sido creado sin l, o porque algunos compliadores crean el ejecutable sin el bit x activo. Vemos que sobre el fichero pepe el propietario tiene permisos para leerlo y editarlo, mientras que todos los dems usuarios del sistema (includos los del grupo users, al que pertenece el fichero) tienen permiso slo para leer. En UNIX todos los dispositivos del sistema se representan como ficheros (en el directorio /dev). Esto hace que el sistema de permisos vaya ms all de controlar el aceso a la informacin (que no es poco). Por ejemplo, en UNIX la disketera se

representa con el fichero /dev/fd0. Si un usuario tiene permiso para escribir en /dev/fd0 no significar que puede editar ningn fichero (este no es un fichero convencional, sino especial). El significado ser que puede copiar ficheros a diskettes. As el administrador puede controlar el acceso a los diferentes dispositivos. Por ejemplo, puede permitir que todo el mundo lea de la disketera pero slo permitir escribir all a los usuarios includos en el grupo floppy. En este caso hacer ls -lag /dev/fd0 dara como resultado: brw-rw-r-1 root floppy 0 May 30 11:35 /dev/fd0

En UNIX es posible cambiar los permisos de un fichero con el comando chmod. Slo el administrador o el propietario pueden cambiar los permisos de un fichero. chmod tiene dos maneras de funcionar, a saber: - Modo binario: se le da al comando un nmero que expresar los nuevos permisos del fichero. Los permisos se agrupan de tres en tres (como en la representacin y en la explicacin previa). A cada bit se le asigna un peso segn su posicin: r=4, w=2 y x=1. Si hacemos chmod 755 pepe estableceremos los permisos de pepe como rwxr-xr-x. Esto es: el propietario tiene control total y todos los dems pueden leer y ejecutar. - Modo simblico: se basa en los siguientes smbolos: u (propietario), g (grupo), o (otros), a (all=todos), + (aadir permiso), - (negar permiso), r (leer), w (modificar), x (ejecutar). Estos smbolos se pueden combinar obteniendo casi infinitas posibilidades, ejemplos: chmod u,g+w pepe (aadir al propietario y al grupo el permiso de modificar), chmod a+r,o-x juan (aadir a las tres categoras el permiso de lectura y despus quitar a la categora "otros" el permiso de ejecucin).

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. Los que interesan para este tema seran: 3. Linux Instalacin y Primeros Pasos, de Matt Welsh. Traduccin de la versin 2.2.2 del libro Linux Installation and Getting Started (traduccin coordinada por Alfonso Belloso). Se trata de un libro de introduccin, ideal para principiantes. 4. Gua del Usuario de Linux, de Larry Greenfield . Traduccin del libro Linux User's Guide (traduccin coordinada por Csar Ballardini). Es un libro para todos los usuarios de GNU/Linux. ftp://www-wks.acs.ohio-state.edu .- De esta direccin se puede obtener el libro "Improving the Security of your UNIX System", de D. A. Curry (SRI International). En este texto se habla del sistema de usuarios y permisos como parte fundamental en la seguridad del sistema.

TEMA 5 .- FUNDAMENTOS DE REDES Y TCP/IP


1 .- Introduccin: La tecnologa de redes de ordenadores es una de las que ms impacto ha tenido en el mundo moderno. Antes de estudiar en profundidad los protocolos, deberamos estudiar el concepto de red. Esto es: las ventajas y desventajas que encontramos al tener una red instalada. Normalmente, la situacin de una oficina o de un laboratorio universitario de hace algunos aos era la siguiente: sola haber unos cuantos ordenadores personales (generalmente PC's, a veces MAC's) desconectados entre s. Los problemas que encontraban los usuarios debidos a esta ausencia de conexin eran los siguientes: - Era necesario usar diskettes para pasar informacin de un ordenador a otro. - Cada ordenador tena instaladas sus aplicaciones y, generalmente, haba versiones diferentes de la misma aplicacin en ordenadores diferentes. - Se sola disponer de una sola impresora que era necesario pasear de ordenador en ordenador para que cada usuario pudiera imprimir. - Los discos duros de cada ordenador solan llenarse con facilidad porque tenan mucha informacin duplicada. - Si los usuarios trabajaban en varios ordenadores, a veces tenan problemas para recordar en cul estaba la versin ms reciente de su trabajo. La introduccin de las redes vino a resolver estos problemas. Estamos hablando de una red local (LAN: Local Area Network). Los servicios bsicos de una red local son: - El servicio de disco:Consiste en la comparticin de un mismo disco entre todos los ordenadores. Este servicio permite que cada usuario guarde su trabajo en un directorio de este disco comn permitindole acceder a sus ficheros desde cualquier ordenador. En este disco compartido tambin se puede tener un directorio comn para intercambio de ficheros eliminando la necesidad de diskettes. Por ltimo, en el disco de red tambin se pueden instalar aplicaciones. Gracias a esto, las aplicaciones ms comunes estarn copiadas slo una vez y se tendr una versin nica (que se instalar slo una vez). - El servicio de impresin: Consiste en la comparticin de una impresora entre todos los ordenadores. Este servicio permite que los usuarios impriman desde sus puestos sin necesidad de andar moviendo la impresora. Para la implementacin de los anteriores servicios se desarroll el modelo clienteservidor. El disco y/o impresora compartida residen en un ordenador llamado servidor, mientras que los ordenadores que usan ese servicio son llamados clientes. El modelo cliente servidor es, realmente, mucho ms amplio. Se aplica siempre que un proceso se comunica con otro para obtener algn servicio. Por ejemplo, cuando

se accede desde el ordenador de un despacho a una base de datos remota; se est efectuando una comunicacin entre un programa del ordenador local y otro del ordenador remoto. El programa local es el proceso cliente y el programa que responde es el proceso servidor. Aunque la comunicacin es entre dos procesos, los ordenadores en que residen se suelen llamar tambin ordenador cliente y ordenador servidor. Si el ordenador servidor es multitarea (puede correr varios procesos a la vez), se puede correr all un proceso cliente (con lo que el ordenador es cliente y servidor a la vez). En este ejemplo la aplicacin de inters es una base de datos, con lo que al ordenador servidor se le suele llamar servidor de base de datos. En una red local se suelen tener siempre los dos servicios bsicos de que hablbamos antes: disco e impresin (servicios locales). A los ordenadores en que residen ambos servicios se les suele llamar: servidor de disco y servidor de impresin. Un mismo ordenador puede proveer ambos servicios (redes pequeas), o tambin se pueden tener varios servidores de cada tipo (o de ambos). Para llegar a montar una red LAN son necesarios los siguientes puntos: - Disponer de interfaces (tarjetas) de red en todos los ordenadores. - Disponer de un cableado adecuado para la interconexin de las interfaces de red. - Instalar en el ordenador servidor un sistema operativo (S.O.) adecuado. Generalmente el software que le permite dar servicios de red viene integrado con el S.O., pero no todos los sistemas operativos son capaces de dar estos servicios (se necesita como mnimo un sistema con multitarea real). Los sistemas operativos que actualmente se usan como servidor de red son: Novell Netware, OS/2, Windows NT y UNIX (en sus diferentes versiones, Linux no es ms que una versin de UNIX). - Instalar en los ordenadores clientes el software adecuado para acceder a los servicios de red. Existen clientes de disco e impresin para todos los sistemas operativos anteriores y adems para otros S.O.'s ms sencillos: MS-DOS, todas las versiones de WINDOWS y MAC System 8. La comunicacin entre los ordenadores de una red se hace segn un acuerdo de normas de comunicacin (o protocolo). Los protocolos se estudiarn ms extensamente en apartados posteriores. En una red podemos clasificar a los servidores de la siguiente manera: - Dedicados: el ordenador slo se dedica a su tarea como servidor. Directamente, slo acceden a l los administradores de la red para labores de mantenimiento. En el S.O. Novell el servidor es dedicado por definicin, esto es: los usuarios no pueden acceder a l directamente. Entendemos acceso directo como la ejecucin de procesos en su CPU. - No Dedicados: se permite a los usuarios la ejecucin de procesos en la CPU. Tiene como ventaja que se aprovecha el servidor como un puesto ms. La

desventaja es la prdida de velocidad y el aumento de la inestabilidad del sistema. Actualmente, es posible interconectar las redes locales para obtener redes de rea ms extensa: - MAN's (Metropolitan Area Network): abarcan una zona del tamao de una ciudad o un campus universitario. - WAN's (Wide Area Network): interconexin de varias MAN's para abarcar un territorio mucho mayor. La WAN por excelencia es la red INTERNET1 que comprende redes de todo el mundo (esta red est basada en el protocolo IP que estudiaremos en apartados posteriores). Cuando hablamos de redes MAN y WAN comienzan a tener sentido otros servicios diferentes a los locales. Estos son los servicios globales, a saber: - Los servicios de correo electrnico (como el E-mail de INTERNET). - Servicios de transferencia de ficheros (como el Ftp de INTERNET). - Servicios de bsqueda de informacin (como el Web y otros como archie o gopher). En este curso se hablar slo de servicios basados en el protocolo IP. stos servicios estn definidos de tal manera que la divisin que hemos establecido entre servicios locales y globales es, simplemente, lgica y no tcnica. Esto es: en una red basada en el protocolo IP los servicios globales se pueden usar localmente (y de hecho se usan mucho). Tambin es posible (aunque mucho menos frecuente) usar a gran distancia servicios de disco e impresin que originalmente se concibieron como locales. Esto se debe a las caractersticas tcnicas del protocolo IP que estudiaremos en breve. Por ltimo, deberamos mencionar las desventajas de las redes: - A veces, instalar ciertas aplicaciones en red es muy complejo porque usan ficheros de configuracin locales (no estn preparadas para funcionar en red). Para evitar este problema y dado que los discos locales son cada vez mayores, lo que se suele hacer es compartir no las aplicaciones sino el programa de instalacin. - Cuando la red no est disponible por fallos o por labores de mantenimiento, se para el trabajo de todos los usuarios (por lo menos, cuando es por mantenimiento se puede avisar con antelacin). - La instalacin del software de red en los puestos de trabajo suele introducir inestabilidad en los mismos.

1Nota: Debe distinguirse entre INTERNET (con maysculas), la red que cre en EEUU la agencia DARPA e internet (con minsculas) que es cualquier red que utilice el protocolo IP, o la tecnologa completa de protocolos que desarroll DARPA. ltimamente, se ha popularizado la denominacin INTRANET, que podramos definir como una internet para uso interno a una organizacin. Las INTRANETs pueden conectarse a INTERNET usando proxies.

A pesar de todas ellas, las ventajas las superan con creces como demuestra la creciente implantacin de las redes en todos los entornos. 2 .- Protocolos de Comunicaciones: 2.1 .- Concepto de Protocolo: Un protocolo es un acuerdo entre varios sistemas que quieren comunicarse sobre las reglas a emplear en la comunicacin. Un ejemplo no informtico sera el siguiente: tenemos una mesa redonda en la que habr problemas si todos hablan a la vez. Para evitarlo, se impone la siguiente norma: se nombra un moderador que va dando la palabra a quienes la piden levantando la mano. Esta norma podramos llamarla "protocolo de comunicaciones". Como en este caso lo que se pretende es regular la comparticin de un canal de comunicacin, podemos decir que ste es un protocolo de acceso al medio. 2.2 .- Arquitecturas de Protocolos: Para establecer una comunicacin compleja, como las que se tienen en una LAN o WAN, es necesario tener varios protocolos (cada uno con una funcin). Los protocolos suelen organizarse por niveles, unos encima de otros. Vamos a poner un ejemplo para intentar explicar lo que significa la arquitectura en niveles. Supongamos que un ejecutivo de la empresa A quiere enviar una carta a otro ejecutivo de la empresa B. Para ello, el ejecutivo redacta una breve nota que le pasa a su secretaria. Despus la secretaria escribe una carta ms formal y la entrega al correo. En la empresa B reciben la carta. Otra secretaria la lee y la resume, entregndole dicho resumen al ejecutivo destinatario. Este es un ejemplo de comunicacin con tres niveles. El nivel superior es el que forman los dos ejecutivos. Y es el que motiva toda la comunicacin (nivel de aplicacin). El nivel intermedio lo forman las dos secretarias y su funcin es introducir ciertos formalismos necesarios en la comunicacin. El nivel inferior lo constituye el servicio de correos y es el que realiza la comunicacin efectiva. En una comunicacin dividida en niveles siempre se tiene: - Comunicacin horizontal: Entre niveles iguales. Los dos ejecutivos se comunican, y tambin las dos secretarias, y los carteros. - Comunicacin vertical: Cada nivel, para comunicarse con su nivel homlogo, utiliza los servicios que le ofrecen los niveles inferiores.

Podemos decir que el flujo fsico de informacin es vertical, mientras que el flujo lgico es horizontal. El flujo horizontal, propiamente dicho, slo existe en el nivel inferior. Siguiendo con el ejemplo podemos tener una carta que pasa por muchas oficinas de correos y es manejada por muchos carteros. Tenemos pues que en la comunicacin no slo intervienen las empresas A y B sino tambin muchos nodos intermedios. En estos nodos intermedios no hay secretarias ni ejecutivos. Es decir: en una comunicacin de ms de dos nodos hay niveles que slo existen en los nodos inicial y final (niveles extremo a extremo) y niveles que existen en todos los nodos (niveles punto a punto).

Podemos decir que los niveles extremo a extremo siempre son los n niveles de arriba. O sea : que a partir de cierto nivel todos son extremo a extremo. En las redes de ordenadores se han propuesto varias arquitecturas de protocolos. De ellas destacan, fundamentalmente, dos: - La arquitectura de internet: fue la primera que existi. La desarroll la agencia DARPA (Defense Advanced Research Projects Agency) creada por el gobierno americano. Se convirti en el estndar de las comunicaciones entre centros militares americanos. Pronto se extendi a universidades y a grandes empresas. Hoy en da, se ha extendido a todo el mundo y a todos los mbitos. - La arquitectura O.S.I. (Open Systems Interconnection): fue creada por la I.T.U. (International Telecommunications Union) a partir del modelo internet. Los diseadores de O.S.I. cometieron el error de disear un modelo demasiado complejo (la documentacin del modelo apilada, era ms de un metro de papel). A pesar de ser un estndar oficial y de ser enseada en todas las universidades del mundo nunca se lleg a su utilizacin prctica. Hoy en da, puede considerarse una arquitectura muerta.

Ambas arquitecturas son iguales en sus 4 niveles inferiores, a saber: - Nivel 1: nivel fsico. Es el que realiza la comunicacin efectiva. Se estandarizan los conectores, las seales (niveles de tensin, modulacin ...). - Nivel 2: nivel de enlace. Podemos distinguir dos casos. En las redes locales se suele usar un medio de comunicacin por difusin: un ordenador enva un mensaje y ste llega a todos los dems. El mensaje lleva una direccin de origen y destino. En este caso, el nivel de enlace est dividido en dos subniveles. El primero es el de acceso al medio que gestiona como compartir el medio de comunicacin comn (como evitar que enven dos ordenadores a la vez). El otro subnivel es el control de enlace lgico. Su funcin es evitar los errores de comunicacin (el ejemplo anterior del protocolo de parada y espera correspondera a un protocolo de control de enlace lgico). En las redes WAN se suelen tener LAN's interconectadas a travs de redes malladas. Aqu, el medio de comunicacin no es por difusin sino punto a punto.

Cuando el medio es punto a punto no existe el subnivel de acceso al medio (ya que no hay conflictos de acceso). - Nivel 3: nivel de red. La funcin del nivel 3 es encaminar los paquetes de informacin en una red mallada. En una red de difusin se conserva por compatibilidad, y lo nico que hace es comprobar las direcciones a nivel 3, como veremos despus. De hecho, existen redes locales donde el nivel 3 no existe (las redes basadas en el protocolo NETBIOS, como la red de Windows para Trabajo en Grupo). - Nivel 4: nivel de transporte. Es el primer nivel extremo a extremo. Su funcin es conseguir la fiabilidad total en la comunicacin extremo a extremo. Los errores simples como bits errneos ya los elimin el nivel de enlace. Se trata ahora de conseguir corregir otro tipo de errores como: paquetes perdidos (algn nodo de la red los tir por falta de memoria), repetidos (la red decidi enviarlos por varios caminos) o desordenados (llegaron por caminos diferentes con retardos diferentes). Los protocolos del nivel 4 son los ms complejos que existen. Para redes locales, se han desarrollado protocolos de transporte simplificados (llamados protocolos de transporte no fiables). Estos ltimos aprovechan el hecho de que en un medio de difusin no se pueden repetir o desordenar paquetes.

La arquitectura de internet acaba aqu. El nivel 5 es el de aplicacin. Para el modelo O.S.I. se estandarizaron 2 niveles ms (y ese fue uno de sus grandes errorres porque introducen una complejidad excesiva). Estos niveles fueron el nivel de sesin y el de presentacin. El nivel de sesin define una especie de conexiones llamadas sesiones, la utilidad de este nivel es prcticamente nula2. El nivel de presentacin introduce, si es necesario, cifrado en los datos y tambin define un modelo de representacin de datos que permite la comunicacin entre ordenadores que los representan en formatos distintos (por ejemplo, que representan de distinta forma los nmero reales). En las aplicaciones internet existe un modelo de representacin de datos llamado XDR (eXternal Data Representation) que slo se usa cuando es necesario. El modelo de O.S.I. (ASN.1, Abstract Syntax Notation version 1) es uno de los pocas normas O.S.I. que ha llegado a la aplicacin prctica (y que se contina usando). 2.3 .- Los Protocolos de Internet: Para que cada nivel cumpla su funcin se define uno (o varios) protocolos. Para la arquitectura internet se tiene: - Niveles 1 y 2: no se estandariza nada de modo que puede usarse cualquiera. Lo ms comn en las redes locales es la norma 802.3 o ethernet. - Nivel 3: ste es el protocolo fundamental de internet, el protocolo IP (Internet Protocol). El protocolo da nombre a toda la arquitectura. Adems existen otros protocolos auxiliares: ARP (Address Resolution Protocol), RARP (Reverse Address Resolution Protocol) e ICMP (Internet Control Message Protocol). Estos ltimos, son protocolos difciles de colocar en la arquitectura porque realizan funciones que implican a varios niveles a la vez. - Nivel 4: se definen dos protocolos de transporte. Uno totalmente fiable y orientado a conexin, el TCP (Transmission Control Protocol). El otro es un protocolo simplificado, que no ofrece fiablidad total pero s rapidez (muy importantes para servicios locales), se trata del UDP (User Datagram Protocol). - Nivel 5: Este es el nivel de aplicacin. Aqu hay varios protocolos que implementan las aplicaciones ms conocidas: - NFS: Network File System. Funciona sobre UDP. Es usado en las redes locales para compartir discos en red. - FTP: File Transfer Protocol. Funciona sobre TCP. Se usa para la transferencia de ficheros a gran distancia o local. - TFTP: Trivial File Transfer Protocol. Funciona sobre UDP. Es un FTP simplificado. Se usa localmente para el arranque de mquinas sin disco (terminales tontos).

La funcin ms til del nivel de sesin es el "checkpointing". Esta caracterstica consiste en establecer peridicamente una comunicacin auxiliar para guardar constancia de que hasta ese momento todo ha ido bien. Si la comunicacin era una transferencia masiva y se produce un corte se podr reanudar a partir del ltimo "checkpoint".

- SMTP: Simple Mail Transfer Protocol. Funciona sobre TCP. Se utiliza para enviar correo electrnico a otras mquinas. Es el protocolo fundamental de intercambio de correo. - POP3: The P.O. Box Protocol version 3. Funciona sobre TCP. Se usa para leer el correo de un usuario (para extraerlo del servidor de correo). El correo ya habr llegado al servidor va SMTP. POP3 slo implementa el ltimo paso (y no sirve para enviar). Este protocolo es el que utilizan los programas Eudora y Netscape para leer el correo. Existe otro protocolo ms moderno y avanzado para esta funcin llamado IMAP. - HTTP: Hipertext Transfer Protocol. Funciona sobre TCP. Se usa para enviar/recibir pginas Web. - SNMP: Simple Network Management Protocol. Funciona sobre TCP. Es un protocolo pensado para aplicaciones de gestin remota de mquinas. Tambin existen dos protocolos ms genricos, pensados para construir aplicaciones de red generales, como bases de datos distribuidas. Son: - RPC: Remote Procedure Call. Funciona sobre TCP o UDP. Define la manera en que un proceso puede invocar a otro proceso remoto al que le va a dar una serie de datos y obtener una serie de resultados. Existen herramientas que permiten la creacin fcil de aplicaciones que usen RPC (compiladores de protocolos). - XDR: eXternal Data Representation. Ms que un protocolo es un formato de informacin. Procede de los tipos de datos de C. 2.4 .- Otros Protocolos Importantes: No vamos a estudiar pero s a nombrar algunos protocolos que se han usado y se siguen usando en LAN's y WAN's que no utilizan tecnologa IP. - IPX/SPX: protocolos de nivel 3 (SPX) y 4 (IPX) de las redes con servidor Novell Netware. Todava son bastante utilizados en redes locales (hace aos Novell fue el gran dominador del mercado). Su defecto fundamental es no haber sabido salir del mercado de las redes locales. Novell ha intentado ampliar los servicios de sus redes con productos como Netware Connect, sin embargo, no ha tenido excesivo xito (quiz porque fue un diseo hecho a ltima hora). - NETBIOS: arquitectura de protocolos de las redes basadas en OS/2 Lan Server y Windows para Trabajo en Grupo (y, opcionalmente, Windows NT). No existe nivel 3, con lo que es imposible utilizarlo ms all de una LAN. - X.25: arquitectura de protocolos (hasta el nivel 3), usada para el acceso a redes pblicas de datos de baja velocidad. Todava muy utilizado en comunicaciones bancarias. - SNA: protocolo de nivel 4, propiedad de IBM, utilizado en el acceso a los grandes ordenadores que manejan grandes bases de datos (sistemas mainframe

como AS/400). Muy utilizado en comunicaciones bancarias en conjuncin con X.25. 3 .- Estudio Detallado de Algunos Protocolos: 3.1 .- La Norma 802.3 o Ethernet: La palabra ethernet es una de las ms utilizadas en la terminologa de redes. Podemos or hablar de cablado ethernet, tarjetas ethernet, protocolo ethernet... La mejor definicin para ethernet es que es una norma (la 802.33 del IEEE) que estandariza los protocolos de niveles 1 y 2 para redes locales. Primero estudiaremos el cableado (nivel 1) y luego veremos dos aspectos del nivel 2. Antes de empezar debemos recalcar que ethernet se basa en la tecnologa de la difusin o modo promiscuo, esto es: si se enva una trama, sta llegar a todas las dems. 3.1.2 .- Cableado Ethernet: El cableado ethernet se puede dividir, fundamentalmente, en dos tipos: coaxial (el primero y, actualmente, en desuso) y RJ-48 (tambin llamado cableado UTP). El cableado coaxial poda ser de dos tipos: el fino o 10 Base-2 y el grueso o 10 Base-5. El 10 viene de la velocidad de los bits (10 Mbps). El 2 y el 5 del dimetro del cable. La ventaja fundamental del cable coaxial es que es un medio de difusin por s mismo (no necesita electrnica adicional). Se trata de una lnea de transmisin de 50 en la que se pinchan (normalmente mediante conectores en T) las interfaces de red de los ordenadores de la red. Dichas interfaces tienen una impedancia de entrada infinita de manera que su insercin no afecta a las ondas que viajan por el coaxial. A ambos extremos del cable es necesario colocar impedancias adaptadas (resistencias de 50 ) para evitar el rebote de las ondas.

El diagrama de la figura nos muestra lo que comnmente se llama un segmento de coaxial. En un segmento de coaxial debe respetarse una longitud mxima de 1.1 Km.
3

Las normas del IEEE que empiezan por 802 estandarizan los niveles 1 y 2 para redes locales. As 802.1 es token ring, 802.2 es token bus, 802.3 es ethernet y 802.11 es la norma de redes LAN inalmbricas (norma reciente y de gran inters hoy da).

Pueden ponerse tantos ordenadores como se deseen siempre que estn separados al menos 2.5 m. La longitud mxima puede aumentarse usando elementos activos o regeneradores. Un regenerador es simplemente un receptor y un emisor que repite a su salida lo que recibe a su entrada. No entiende de protocolos ni direcciones, funciona a nivel 1. El problema fundamental del coaxial es que cualquier avera del cable, ausencia de terminador o apertura accidental de una T lleva a la cada de toda la red. Adems, cuando se produce un problema de este tipo, es muy difcil localizar la avera. Cuando tenemos cableado UTP, podemos or hablar de 10 Base-T (de nuevo, el 10 es por 10 Mbps) y 100 Base-T (100 Mbps o Fast-Ethernet). El hecho de que una red funcione a 10 o a 100 no depende del cableado sino de los dispositivos (interfaces de red) que conectemos. Eso s, no todos los cableados UTP soportan la velocidad de 100. Hoy da cualquier obra de cableado debe ser como mnimo de categora 5. La categora 5 asegura que se cumplen ciertas normas de relacin seal a ruido, atenuacin... La categora 5 soporta las dos velocidades de 10 y de 100. Si en una misma red tenemos dispositivos de las dos velocidades y cableado categora 5, dos dispositivos se comunicarn a 100 si ambos son de 100 y a 10 si uno de ellos es de 10 (los dispositivos de 100 Mbps son realmente 10/100 y suelen ser capaces de encontrar la mejor velocidad posible de una forma automtica). En el cableado UTP los ordenadores se conectan a un cable telefnico RJ-48 (cable telefnico RDSI, 8 hilos). El cable telefnico no es un medio de difusin por s mismo. Para tener una red ethernet con cableado UTP, es necesario un concentrador o hub. El hub es un dispositivo que tiene N bocas de conexin y cuya funcin es muy simple: lo que recibe por una boca, lo repite por todas las dems. Gracias a los hubs se consigue tener un medio de difusin. Mucha gente afirma que las redes UTP son redes en estrella, eso slo es cierto en cuanto al cableado; desde un punto de vista lgico ethernet siempre es un bus.

La ventaja fundamental del par trenzado es que una avera slo afecta a un puesto y se puede detectar siempre desde el hub. Adems, hay mayores ventajas si se hace al hub ms inteligente: - Switching: un concentrador sin switching repite lo que le llega a una boca por todas las dems (mtodo de flooding o inundacin). Sin embargo, esto en principio no es necesario. Las tramas ethernet llevan una direccin destino (de las direcciones hablaremos ms en el apartado 3.1.4). Por tanto, la mayora de las veces slo es necesario repetir cada trama por una y slo una de las otras bocas. Las tramas con direccin broadcast (enviadas a todas las mquinas de la red) s que tienen que ser enviadas por todas las salidas. Un concentrador con switching tiene que saber la direccin ethernet de la mquina conectada a cada boca. Para eso no hace falta meterla de ninguna forma. Cuando se recibe una trama por una boca lleva la direccin de origen que permite conocer la direccin que nos hace falta. El concentrador construye una tabla de direcciones ethernet. Si una mquina nunca ha enviado nada, esa boca aparecer como de direccin desconocida. Cuando llega una trama para una direccin que no aparezca en la tabla el concentrador la inunda por todas las bocas con direccin desconocida. La ventaja del switching es un aumento espectacular de la velocidad de la red y del trfico mximo soportado por la misma. Los estudiosos de las redes dicen que la velocidad efectiva de ethernet no es de 10 100 Mbps sino un porcentaje del mximo que depende de la carga actual. Con un switch se consigue que, de verdad, se use siempre la velocidad mxima. - Per-Port Switching: a un concentrador con per-port switching se le ha introducido manualmente la direccin ethernet de la mquina que va a ir en cada boca. Si se conecta una mquina con una direccin distinta en una boca cualquiera, simplemente no recibir tramas (la direccin ethernet no es fcil de modificar). sta es una medida de seguridad. Uno de los mtodos de ataque ms eficaces contra una red es conectar una mquina a ella y aprovechar la difusin (modo promiscuo) propia del protocolo ethernet para espiar las tramas enviadas en toda la red. 3.1.3 .- El Acceso al Medio en Ethernet: Imaginemos una ethernet que trabaja en modo promiscuo (sin switching). Es decir: el medio es de difusin y una trama enviada por un ordenador llega a todos los dems. El problema que nos ocupa ahora es: si un ordenador puede decidir enviar una trama en cualquier momento, Cmo se hace para que compartan el medio todos los ordenadores de una red ? Si dos ordenadores envan a la vez, en el cable se suman los dos mensajes con lo que no se recibe ninguno de los dos. Para ethernet se dise un protocolo de acceso al medio que se basa en las llamadas tcnicas de contienda.

El acceso mltiple por contienda se basa en que cada ordenador enve cuando quiera y si se produce una colisin (han enviado varios a la vez) ambos reintentarn despus de un retardo aleatorio. Para minimizar las colisiones la interfaz de red nunca enva si ve que otro ordenador est ya enviando (LBT: Listen Before Talk). Adems, se detecta la colisin en cuanto se produce; dejando de enviar todos los implicados (LWT: Listen While Talking). Este sistema funciona bien si los ordenadores tienen poca informacin por unidad de tiempo a enviar (poco trfico) comparada con la velocidad fsica del cable (10 100 Mbps). Se dice que la velocidad fsica se ve reducida por un factor que crece con el trfico. Si el trfico es muy grande la velocidad efectiva puede llegar a 0 (cada de la red, para eso hace falta tener muchos ordenadores del orden de 100- en el mismo hub y muy activos todos a la vez). Este protocolo de acceso al medio se llama CSMA-CD (Carrier Sense Multiple Access-Colission Detect). El tiempo medio de reintento va duplicndose segn se fallan los sucesivos reintentos (back-off exponencial binario). El switching permite que la velocidad efectiva de la red sea igual a la velocidad fsica del medio de comunicacin. 3.1.4 .- Las Direcciones Ethernet: Como ya se ha adelantado antes; en el protocolo ethernet, cada ordenador tiene una direccin. Esa direccin va grabada fsicamente en el hardware de las interfaces de red, es nica en el mundo y no se puede modificar. La direccin ethernet est formada por 48 bits que suelen representarse como 6 bytes en hexadecimal. La direccin con todos 1's (FF:FF:FF:FF:FF:FF), es la ethernet broadcast o trama dirigida a todas las mquinas de la red. 3.2 .- El protocolo IP: La funcin del protocolo IP es el encaminado de los paquetes a travs de redes malladas de cualquier tamao. Para ello, el protocolo IP se basa en una distribucin jerrquica de las direcciones. Ya hemos hablado de direcciones a nivel 2 (concretamente ethernet). Estas direcciones normalmente se llaman direcciones hardware. Vienen dadas por el fabricante de la tarjeta y no se pueden cambiar. Es ms, las direcciones ethernet de las mquinas de una misma red local u organizacin no tienen, generalmente, nada en comn. Lo normal sera que las direcciones de una organizacin (por ejemplo la Universidad de Vigo) empezaran por los mismos bits. Es ms, sera ideal establecer una jerarqua para las direcciones tal que, sabiendo la direccin, pudiramos saber a qu

Departamento pertenece. Todo esto es deseable e imposible con las direcciones ethernet. Las direcciones a nivel IP son fijadas por el administrador de la red. Se les llama direcciones software. La direccin de una mquina puede cambiarse. No guardan ninguna relacin con la direccin ethernet. Vamos a ver un ejemplo en el que veremos como una organizacin jerrquica de las direcciones introduce un mtodo de encaminamiento. Supongamos que, aqu en Vigo, marcamos el nmero de telfono 981-545427. Este nmero llega a la central local y la central no sabe a donde va la llamada. Lo nico que sabe es que el nmero no es de esa central (de hecho, para eso, slo necesita leer el 981). Por eso, la llamada se encamina a la central provincial. La central provincial vuelve a leer el 981, ese dato y una tabla de la CMT (Comisin del Mercado de las Telecomunicaciones) le permite saber que es una lnea de la provincia de La Corua y tambin que es de Telefnica. Telefnica, tiene todas sus centrales provinciales interconectadas ("todas con todas"), por eso la llamada se encamina a la central provincial de Corua. Desde luego, la central pontevedresa no sabe en qu parte de La Corua est el nmero llamado. La central coruesa, s que sabe eso. Al ver que el nmero empieza por 54 dirige la llamada a una central local de Santiago. La central provincial no sabe qu abonado es, pero eso lo sabe la central local que lee el 5427 y hace sonar el nmero de la centralita de la Universidad de Santiago. Vemos como los nmeros de telfono son direcciones con una organizacin jerrquica. Esa organizacin permite que un abonado sea localizado a partir de su nmero leyendo los diferentes campos y sabiendo su significado. Las centrales (los nodos de encaminamiento) tienen un conocimiento distribuido. Cada una tiene una parte de la informacin necesaria para encaminar la llamada. Vemos como cada una va leyendo una parte del nmero y usa su "parte de sabidura" para decidir parte del camino. El formato de direcciones IP es de 32 bits. Se representan con 4 nmeros de 0 a 255, separados por puntos. Ejemplo: hasta el ao 1998 el uno de los servidores de correo de la Universidad de Vigo tena la direccin 193.146.38.80. Cada una de esas 4 componentes tiene un significado (como las del nmero telefnico): 193 ==> Red acadmica e investigadora espaola (Red Iris). 146 ==> Universidad de Vigo. 38 ==> rea de TSC. 80 ==> Servidor de Correo (nilo). Una subred o segmento IP es un conjunto de mquinas con direcciones relacionadas. Cuando se monta una subred conectada a INTERNET, la autoridad distribuidora de direcciones correspondiente asigna parte de la direccin y el resto es responsabilidad del administrador local.

Los bits que se fijan localmente tienen dos restricciones. No pueden ser todos ceros o todos unos, ya que esas direcciones tienen significados especiales (con todos ceros se obtiene la direccin genrica de la subred y con todos unos se obtiene la direccin broadcast de la subred). Para especificar m y n se suele dar la "mscara de subred" que es una direccin que tiene los primeros n bits a uno, y los m restantes a cero. En INTERNET, la autoridad en la asignacin de direcciones funciona por delegacin. El mecanismo (explicado mediante un ejemplo) es: la comisin internacional de direccionamiento INTERNET (IANA: INTERNET Assigned Number Authority) asign varias redes con n=24 a los gestores de Red Iris (el CSIC), entre ellas la 193.x.x.x. El CSIC asign varias redes con n=16 a la autoridad mxima de Red Iris en Galicia (el CESGA, Centro de Supercomputacin de Galicia). Una de esas redes (la 193.146.x.x) fue concedida por el CESGA a la Universidad de Vigo. La gestin de dichas direcciones corre a cargo de la ATIC (rea de Tecnologas de la Informacin y Comunicaciones). La ATIC destin dos redes con n=8 (193.146.38.x y 193.146.37.x) a la E.T.S.I.T. Finalmente, fue un profesor de la E.T.S.I.T. el que decidi asignar la direccin 193.146.38.80. Ntese que en cada nivel hay una autoridad que decide como se van subdividiendo las redes. Esa misma autoridad tambin decide qu direccin se le asigna a cada mquina individual. IANA asign algunas direcciones4 para redes privadas en el documento: el RFC1918 (los estndares de INTERNET se conocen como RFCs5). Una red privada, es una red basada en el protocolo IP con direcciones "inventadas" o "ilegales" (es decir: no asignadas por la autoridad competente). Estas redes no tienen acceso a INTERNET. Son las llamadas INTRANETS. Cuando alguien monta una red de este tipo debera emplear las direcciones reservadas para ello. La razn es que se puede emplear un proxy (una mquina con nmero IP legal que le "presta" su direccin a las otras) para conectar una red privada a INTERNET. Este tipo de conexin no funciona bien si no se ha seguido esta norma.

4 Las direcciones reservadas para redes privadas son: 10.x.x.x, 192.168.x.x y las que van de 172.16.x.x a 172.31.x.x. 5 Curiosamente RFC viene de Request for Comments y significa borrador, los RFCs son elaborados por la IETF: INTERNET Engineering Task Force)

Para estudiar la estructura de INTERNET, es necesario estudiar los IP routers. Un router a nivel IP es uno de los nodos que dibujbamos antes en las redes malladas. Son las centrales telefnicas de internet. La conexin entre routers se consigue con enlaces punto a punto del tipo adecuado (lneas RDSI, ADSL o, incluso, ATM; radioenlaces...). Un router es una mquina con ms de una direccin IP: pertenece a varias subredes, tiene una direccin IP por cada una y realiza la interconexin de todas ellas. Un router funciona de forma muy similar a un switch, pero a nivel 3. Adems no es auto-configurable, es necesario decirle cmo son las direcciones en las redes a las que est conectado (como ahora las direcciones estn relacionadas, esto se hace ms fcil).

Las mquinas envan dos tipos de paquetes IP: - Paquetes directos: su destinatario est en la misma subred que el emisor. Llevan slo la direccin del destinatario. - Paquetes enrutados: su destinatario est en una subred diferente a la del emisor. Lleva la direccin del destinatario y la del router intermedio. Cada mquina tiene su tabla de encaminamiento que le indica cundo tiene que enviar paquetes rutados y a travs de qu router. Ejemplos: Tabla del puesto A: El destino es 111.112.113.X => paquete directo. El destino es 193.146.38.X => paquete rutado a travs de 111.112.113.1. Tabla del puesto B: El destino es 193.146.38.X => paquete directo. El destino es 111.112.113.X => paquete rutado a travs de 193.146.38.1. Tabla del router: Si el destino es 111.112.113.X => paquete directo en la 1 red. Si el destino es 193.146.38.X => paquete directo en la 2 red. La direccin del router suele ser siempre la nmero 1 (X=1) de su red. Esto no es obligatorio, pero es costumbre. Adems, en la tabla del router hay que indicar por qu red se envan los paquetes porque est conectado a dos redes (tiene dos interfaces de red). Una tabla de encaminamiento est formada por varias entradas. En el ejemplo

anterior se vieron las necesarias para conectar dos redes. Puede haber ms routers y ms entradas en las tablas. En las tablas de encaminamiento es posible aadir una entrada "por defecto", por ejemplo: Para cualquier otro destino => paquete rutado a travs de 193.146.38.1.

El concepto de router por defecto es bsico para tener una lnea de salida al exterior en una red. Muchas veces en un puesto de trabajo comn la tabla de rutado slo tiene la entrada debida a la propia subred y la entrada por defecto. Ms all de la salida al exterior los routers se organizan jerrquicamente. Ejemplo:

La figura representa la MAN de la Universidad de Vigo. Vemos 2 redes locales (las dos que hay en la ETIST) conectadas a una red de redes que abarca todo el campus. Esa red que interconecta las LAN's departamentales suele llamarse backbone (espina dorsal). El router que sale del backbone vigus est conectado a otro backbone de nivel superior (en el CESGA de Santiago) que concentra toda la red universitaria gallega. La

organizacin es parecida a la del sistema telefnico clsico (central local, provincial... ). Con mltiples niveles se logra la conectividad mundial. Hay dos tipos de encaminamiento: - Esttico: las tablas de encaminamiento se fijan manualmente y se cambian manualmente cuando hay cambios en la red. - Dinmico: las mquinas (incluidos los routers) intercambian la informacin de sus tablas (usando el protocolo RIP, ste es un protocolo de nivel de aplicacin que funciona sobre UDP). Muy importante para routers de alto nivel jerrquico, porque permite optimizar los caminos y adaptarlos a los cambios de la red. Por ltimo, comentaremos que en las mquinas con direccin IP conviven varias aplicaciones que usan el mismo nivel de transporte. Para permitir el acceso simultneo a este nivel se definen varios puertos de transporte. Los puertos son como subdirecciones que indican a qu proceso atae cada comunicacin. Cada aplicacin suele tener asignado su propio puerto (el 25 para el mail, el 21 para el ftp). 3.3 .- Protocolos Auxiliares de la Arquitectura Internet: Hemos estudiado, hasta ahora, dos esquemas de direccionamiento diferente: el de nivel 2 (ethernet) y el de nivel 3 (IP). En una red local conectada a internet deben convivir ambos. Esto es: el nivel IP tiene que empaquetar la trama IP en una trama ethernet. Y lo que es ms problemtico: para que el ordenador A se comunique con el B, A tiene que saber la direccin ethernet de B (y lo que sabe es la direccin IP). Para resolver este problema se dise el ARP (Address Resolution Protocol). El ARP funciona segn el siguiente mecanismo: la mquina A enva una trama con la direccin ethernet broadcast (es decir: que va a todas las mquinas de su segmento) preguntando " Quin es la mquina con la direccin IP: 200.100.100.155 ?" (supuesto que esa sea la direccin IP de B). B (y slo B) responde con una trama que contiene su direccin ethernet. Desde ese momento, A conoce la direccin ethernet de B y puede establecerse la comunicacin. Ntese que si la trama IP a enviar es "enrutada", es decir: B est detrs de un router. La trama ethernet broadcast no llegar a B. En este caso A no usa ARP, sino que es el router final el que lo hace para localizar a B. A, en todo caso, utiliza el ARP para localizar al router. Otro protocolo auxiliar (menos importante) es el RARP (Reverse Address Resolution Protocol). El RARP se usa para el arranque de mquinas sin disco (terminales tontos). Esas mquinas tienen tarjeta ethernet y la nica direccin que conocen es su direccin a nivel 2 (direccin hardware). Estas mquinas usan el RARP para averiguar su direccin IP. Una mquina que arranca usando RARP enva una trama ethernet broadcast (que contiene su direccin ethernet) preguntando " Alguien sabe mi

nmero IP ? Cuando se usa RARP, tiene que existir en algn punto de ese segmento una mquina que tenga una tabla direcciones ethernet => direcciones IP. Esa mquina contestar al terminal cul es su direccin IP, a partir de ese momento ya no se usar ms el RARP. La mquina que responde cules son las direcciones IP recibe el nombre de servidor de RARP. Actualmente, el RARP ha cado en desuso debido a la aparicin de protocolos ms avanzados para esta funcin: BOOTP y DHCP. Los protocolos ARP y RARP son difciles de situar en la arquitectura general. No son de nivel 2 ni de nivel 3, son intermedios.

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. El que interesa para este tema sera: Gua de Administracin de Redes, de Olaf Kirch. Traduccin de la versin 1.0 del libro Linux Network Administrator Guide (traduccin coordinada por Juan Jos Amor). Da una visin muy general y prctica de los protocolos de INTERNET as como de su uso desde Linux. http://www.iana.org .- Web oficial de IANA. http://www.rfc-editor.org .- La fuente oficial de las RFCs. http://www.ietf.org .- Web oficial de la IETF. "Redes de Ordenadores" de A. S. Tanembaum (editorial Prentice Hall). Excelente libro sobre arquitecturas de protocolos. Las ediciones antiguas describan los protocolos O.S.I. Las nuevas reconoce la muerte de O.S.I. y describe los protocolos internet. Internetworking with TCP/IP de D. E. Commer (editoral Prentice Hall). Texto clsico sobre TCP/IP y todos los protocolos relacionados. "RPC Programming Manual" de Sun Microsystems Inc. Describe la programacin en C de aplicaciones en red (utilizando un compilador de protocolos, el RPCGEN).

TEMA 6 .- EL NIS (NETWORK INFORMATION SERVICE)


1 .- Introduccin Hasta ahora ya hemos visto algunos de los ficheros de configuracin de las mquinas UNIX (como el /etc/passwd, /etc/group... ). El NIS surge de la necesidad de poder compartir algunos de estos ficheros en una red de mquinas UNIX. Pensemos en que tenemos un laboratorio con 10 mquinas UNIX y queremos crear una cuenta de usuario. Normalmente querremos que este usuario pueda a acceder a todas las mquinas del laboratorio. Una primera solucin sera crear el usuario 10 veces con lo que este usuario existira en todos los ficheros /etc/passwd. No sera conveniente tener un fichero /etc/passwd central y compartirlo ? El NIS es el servicio de red que permite compartir el fichero passwd y otros ficheros del directorio /etc. El NIS fue desarrollado por Sun y, primeramente, se llam "pginas amarillas"6 (por eso, muchos de los comandos que manejan el NIS empiezan por yp, de yellow pages). Este nombre viene de que fue pensado como un servicio para traducir nombres de mquinas en nmeros IP (igual que las guas telefnicas traducen nombres en nmeros de telfono). La traduccin de nombres a nmeros IP se realiza compartiendo el fichero /etc/hosts (este fichero permite asociar un nombre textual a las direcciones IP de la red). Este servicio se extendi para convertirse en un servicio de almacenamiento y mantenimiento de bases de datos en red (cada base de datos corresponde a un fichero de /etc). Hoy da el NIS existe para muchos sistemas UNIX como Solaris, Linux, HP-UX... y es una herramienta muy utilizada en las redes locales con varias mquinas UNIX. 2 .- Funcionamiento del NIS Las bases de datos que se comparten en el NIS se llaman mapas (cada mapa procede de un fichero de /etc). El conjunto de todos los ordenadores que comparten determinados mapas se llama dominio7. En una red UNIX que use NIS los mapas fundamentales (obligatorios) suelen ser: - El hosts que sirve para relacionar nombres de mquinas con sus nmeros IP. - El passwd que sirve para relacionar nombres de usuarios con su clave y otros datos necesarios para el adecuado funcionamiento de las cuentas. - El group que define grupos de usuarios. Aparte de stos, es posible que el administrador defina otros mapas.
6

Curiosamente, el cambio de nombre se debi a una demanda de la compaa telefnica inglesa que reclam que el nombre yellow pages estaba registrado por ellos. 7 Dominio es una de las palabras ms utilizadas en el mundo de las redes y rara vez significa lo mismo. Podemos or hablar de dominio NIS, dominio DNS, dominio NT (una idea muy parecida al dominio NIS)... La definicin ms general es que un dominio es un conjunto de ordenadores que comparten algn tipo de informacin en red.

En todo servicio de NIS hay dos actores principales: el servidor (que distribuye las bases de datos) y los clientes que las leen (adems, el servidor suele ser cliente de s mismo). El servidor de NIS correr el daemon ypserv8. Un daemon es un proceso que va a implementar un servicio. Algo parecido a un driver de ratn. Por otra parte el cliente de NIS corre otro daemon llamado ypbind (si el servidor es cliente de s mismo, en esa mquina corrern los dos daemons a la vez). ypbind busca automticamente al servidor de NIS en toda su subred a travs de una trama IP broadcast. Una cuestin importante es saber que esa trama broadcast no atravesar los routers (si lo hiciera llegara a todo el mundo, por eso los routers no dejan pasar los broadcasts). Qu hacer cuando hay clientes de NIS de un mismo dominio en varias subredes ? Para esto se defini la posibilidad de tener servidores esclavos. Los servidores esclavos corren ypserv y guardan una copia de los mapas. Pero no pueden modificarlos. Es decir: distribuyen la informacin, pero las modificaciones siempre se hacen en el servidor primario o maestro. Existe una utilidad llamada yppush que se ejecuta automticamente despus de cada modificacin, esa utilidad transfiere los mapas actualizados a los servidores esclavos. A veces, tambin se tienen servidores esclavos en la misma subred. Esto se hace porque el NIS es un servicio vital (sin l la red est cada). Al tener varios servidores, si uno falla, los clientes buscan automticamente a los otros. 3 .- Comandos del NIS Si estamos trabajando en una mquina UNIX conectada a una red que usa NIS, podremos usar los siguientes comandos: - domainname: sirve para saber cual es el dominio de NIS del que la mquina es cliente. Si se ejecuta como root sirve para establecer el dominio. - ypwhich: dice cual es el ordenador responsable de mantener y distribuir la informacin del NIS (servidor de NIS). - ypcat: sirve para listar un mapa completo. Ejemplos: ypcat hosts o ypcat passwd. - ypmatch: sirve para buscar una entrada particular en un mapa. Ejemplos: ypmatch vladimir hosts.byname, ypmatch 111.112.113.122 hosts.byaddr o ypmatch cacti passwd.byname. 4 .- Instalacin del NIS en Linux Para instalar el NIS en Debian Linux podemos usar la utilidad dselect que ya conocemos de la instalacin. dselect puede ser ejecutado en cualquier momento, con el sistema ya instalado y con l podemos aadir/eliminar aplicaciones. Si elegimos instalar
8

daemon es una de las palabras ms difciles de traducir del ingls. Aunque la traduccin popular es demonio, la traduccin correcta sera ms bien: alma o espritu.

el paquete NIS, dselect lo har por nosotros descomprimiendo todos los daemons y utilidades de las que hablbamos. Adems de eso, se ejecutar un programa de configuracin asistida que preguntar el dominio de NIS al que vamos a enganchar nuestro ordenador. En ningn momento hemos dicho si nuestra mquina va a ser cliente o servidor (ni qu tipo de servidor: maestro o esclavo). La instalacin por defecto ha creado un cliente y lanzado el ypbind. Si en el dominio no existe ningn servidor todava, la mquina estar protestando porque no encuentra ninguno. Adems de las utilidades, el programa de instalacin habr creado un fichero llamado /etc/init.d/nis. El directorio /etc/init.d almacena scripts de arranque de la mquina, cada uno para una funcin, el /etc/init.d/nis ser el que lance los daemons del NIS. Si editamos ese fichero veremos que al principio hay una variable que est puesta a valor none, al lado habr un comentario que expresa que esa variable puede ser: master (se arranca el NIS como servidor maestro), slave (se arranca el NIS como servidor esclavo) o none (el ordenador es slo cliente). Si ponemos esa variable a master y rearrancamos el NIS, tendremos nuestro primer servidor maestro (el NIS se puede rearrancar reiniciando la mquina o, mejor, ejecutando primero nis stop y despus nis start). Todava nos falta un paso fundamental. En efecto, no hemos definido las bases de datos. Esta informacin se va a tomar de los ficheros de configuracin del directorio /etc del servidor de NIS (recurdese que el NIS es una forma de compartir configuraciones del directorio /etc). Para la informacin de nombres de mquinas se tiene un fichero /etc/hosts, para las cuentas de usuarios /etc/passwd y para los grupos de usuarios /etc/group. La informacin de estos ficheros la edita y mantiene el administrador del sistema (son ficheros ASCII). Sin embargo, el programa ypserv no trabaja con ficheros ASCII. Cuando el administrador ha cambiado algo en un mapa debe convertir los ficheros ASCII iniciales en binarios con el formato del ypserv. Esta conversin es similar a una compilacin. La realiza el administrador colocndose en el directorio /var/yp y ejecutando el comando make. Si el dominio se llama laboratorio los ficheros binarios se almacenarn en el directorio /var/yp/laboratorio (la primera vez ser necesario crear manualmente ese directorio). Si no se quieren aadir nuevos mapas ya tenemos todas las herramientas necesarias. Para aadir nuevos mapas es necesario modificar el archivo /var/yp/Makefile. Este fichero es un programa que se va a ejecutar (interpretar) con el comando make que se mencion antes (un programa que convierte las bases de datos ASCII a formato binario). Para aadir un mapa nuevo es necesario aadir las instrucciones que implementen la conversin de los mapas nuevos. Al final del archivo Makefile existen unas instrucciones que fuerzan la transmisin de los mapas a los servidores esclavos (si existen). Para ello, es necesario que el servidor maestro sepa la lista de todos los esclavos. Eso se consigue declarando esa lista como un mapa ms. Ese mapa es opcional (existe cuando hay esclavos) y se llama ypservers.

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. El que interesa para este tema sera: Gua de Administracin de Redes, de Olaf Kirch. Traduccin de la versin 1.0 del libro Linux Network Administrator Guide (traduccin coordinada por Juan Jos Amor). Da una visin muy general y prctica de los protocolos de INTERNET as como de su uso desde Linux. Managing NFS and NIS de H. Stern (editorial O Reilly & Associates Inc). Libro perteneciente a la prestigiosa coleccin Nutshell de la editorial OReilly. Es un buen manual sobre NFS y NIS en entorno UNIX.

TEMA 7 .- NFS (NETWORK FILE SYSTEM)


1 .- Introduccin El servicio NFS (basado en el protocolo del mismo nombre) permite compartir discos en red. Se trata de un servicio perfectamente integrado con el sistema operativo UNIX. Toda mquina UNIX entiende sus discos locales (tanto discos fijos, diskettes, CDs... ) como sistemas de ficheros (filesystems). El concepto de filesystem viene a ser sinnimo de particin. El comando UNIX mount permite acceder a un filesystem hacindolo visible bajo el directorio que se le diga. El NFS define un nuevo tipo de filesystem: el filesystem de red (o sea: un directorio de otro ordenador). El NFS fue desarrollado por Sun (que fue una de las empresas que ms contribuy al mundo de UNIX y de las redes en general). NFS es un protocolo de nivel de aplicacin que usa el protocolo UDP a nivel de transporte. Como se vi en el tema 5, el UDP (User Datagram Protocol) un protocolo de transporte simplificado que funciona directamente encima del IP. El uso de UDP en vez de TCP se justifica porque est pensado para redes locales que son muy fiables (y, por tanto, no se necesita el control de errores superestricto del TCP) y porque al usar UDP se gana mucho en rapidez. 2 .- Creacin de un Servidor NFS: Para montar un servidor NFS ser necesario tener instalado el paquete software correspondiente. La mayora de sistemas UNIX lo instalan por defecto. Una buena forma de comprobarlo es hacer which rpc.nfsd, si aparece el daemon de NFS es que est instalado. Para compartir uno o ms directorios es necesario declararlo en el fichero /etc/exports (cada lnea debr contener un directorio exportado). Aparte del nombre del directorio a exportar se pueden poner muchas opciones (exportar slo a determinadas mquinas, en lectura escritura, en slo lectura ...). El formato adecuado se obtiene en el manual online haciendo man exports. Muchas veces editar el fichero exports no ser suficiente, sino que habr que resetear la mquina para que el fichero sea ledo de nuevo (en Debian Linux existe un script en /etc/init.d llamado netstd_nfs, el servicio se puede arrancar con netstd_nfs start y parar con netstd_nfs stop). El comando showmount e nos permite saber los directorios que est exportando un servidor. 4 .- Diferentes Clientes NFS: Aunque el NFS empez siendo exclusivo de UNIX, pronto se desarrollaron clientes (e incluso servidores) para otras mquinas. Vamos a estudiar ahora, muy brevemente, los clientes NFS para diferentes arquitecturas.

4.1 .- Cliente UNIX: El UNIX dispone de cliente NFS integrado en el S.O. Es decir: se instala por defecto. Simplemente, hay que decirle al S.O. qu directorio queremos montar (hacerlo aparecer en un directorio de nuestra mquina local) de qu servidor y dnde. Si queremos montar el directorio /cdrom del servidor vladimir en nuestro directorio /mnt, basta con hacer: mount vladimir:/cdrom /mnt Si hacemos, ls /mnt veremos los archivos del CD-ROM. Ese directorio que acabamos de montar ser desmontado cuando se resetee nuestro ordenador. Si queremos que siempre se monte al arrancar habr que aadir una lnea al fichero /etc/fstab. Ese fichero establece los directorios que sern montados al arrancar. Para saber el formato adecuado deberemos acudir a la ayuda on-line y hacer man fstab. 4.2 .- Cliente DOS/WINDOWS 3.x: Aunque ya muy obsoletos, los primeros clientes NFS fuera de UNIX permitan a mquinas con DOS y/o WINDOWS 3.x acceder a los servicios de servidores UNIX. Para que funcione bien el software descrito en este apartado (y tambin el descrito en el siguiente) es necesario lanzar los PC-NFS daemon's (as llamados) en el servidor. Estos daemons se llaman rpc.pcnfsd y rpc.bwnfsd y se lanzan editando los ficheros de arranque. La funcin de rpc.pcnfsd es identificar (pedir un login y una password) al usuario del ordenador que desea montar una unidad. Esto es muy importante para la seguridad de la red. La funcin de rpc.bwnfsd est relacionada con el acceso a impresoras (los clientes NFS para DOS suelen incluir un cliente de impresin). Para que rpc.bwnfsd funcione bien es necesario que el directorio /var/spool/bwnfs est exportado y que tenga permisos de escritura universal (eso se debe a que el cliente de impresin se basa en copiar por NFS los ficheros intemedios en ese directorio). En este caso el fichero /etc/hosts.lpd no tiene el control sobre qu mquinas estn autorizadas a imprimir (ese control est en el fichero exports limitando a las mquinas que pueden montar el directorio /var/spool/bwnfs). Para ver discos NFS desde un ordenador en DOS es necesario un software adicional o cliente NFS para DOS. Un ejemplo es el software de SUN PC-NFS. Otro, es el software freeware XFS. Ambos funcionan de la misma forma: cargan drivers en los ficheros de arranque de DOS, CONFIG.SYS y AUTOEXEC.BAT. Estos drivers son programas residentes que implementan los protocolos de red. Los detalles de instalacin sera necesario verlos en los respectivos manuales de los fabricantes.

En ambos casos el diseo es lo bastante bueno para que el software siga funcionando despus de arrancado WINDOWS 3.x. Es decir: desde WINDOWS es posible ver las unidades de red que se montaron en el arranque del DOS, con lo que se trata de un cliente doble DOS/WINDOWS. Tambin en ambos casos el software de NFS incluye un cliente de impresin. 4.3 .- Cliente Windows-9x/NT: Para instalar un cliente NFS en WINDOWS-9x/NT es necesario instalar primero el protocolo TCP/IP desde el panel de control. Editando las propiedades de este protocolo (en el propio panel de control) podremos establecer la direccin IP, mscara de subred y dems parmetros del protocolo IP. Una vez instalado el TCP/IP (el nativo de Microsoft) ser necesario instalar un cliente NFS (que proviene de terceros fabricantes). Como ejemplos podemos citar NFS MAESTRO de Hummingbird Software (comercial), OMNI-NFS de X-Link Technologies o Sun Solstice Network Client. Todos ellos tienen un programa de instalacin fcil (tipo WINDOWS-95). Una vez instalados, se usa el explorador de WINDOWS para conectar a las diferentes unidades de red (en la terminologa de WINDOWS-95 se usa el trmino conectar en las situaciones en que los conocedores de UNIX hablan de montar). Es, cara al operador, exactamente el mismo mecanismo de la red Microsoft. Tambin todos estos paquetes incluyen un cliente de impresin. El mtodo grfico de conexin a la impresora compartida es el mismo que para las unidades de red. El cliente de Sun, el Solstice incluye tambin un servidor, de modo que las mquinas UNIX podran acceder a directorios presentes en las mquinas con Windows. De todas formas, el NFS no es la solucin preferida para dar servicios a las mquinas Windows. La solucin ms interesante del momento es el samba que estudiaremos en el captulo 9.

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. El que interesa para este tema sera: Gua de Administracin de Redes, de Olaf Kirch. Traduccin de la versin 1.0 del libro Linux Network Administrator Guide (traduccin coordinada por Juan Jos Amor). Da una visin muy general y prctica de los protocolos de INTERNET as como de su uso desde Linux. Managing NFS and NIS de H. Stern (editorial O Reilly & Associates Inc). Libro perteneciente a la prestigiosa coleccin Nutshell de la editorial OReilly. Es un buen manual sobre NFS y NIS en entorno UNIX. http://www.hummingbird.com/products/nc/nfs .- Pgina oficial de NFS MAESTRO y otros productos relacionados. http://www.tucows.com .- Esta es la direccin ms famosa del mundo en la bsqueda de software de red. Buscando NFS para Windows se encuentra el OMNI-NFS con licencia shareware. http://www.sun.com/software/solstice/netclient .- Pgina de Sun Solstice donde nos informan que se han asociado con WRQ Inc. y con su producto Reflection.

TEMA 8 .- GESTIN DE IMPRESORAS.


1 .- Introduccin En este tema vamos a ver los pasos necesarios para imprimir en UNIX y tambin cmo compartir impresoras en red. 2 .- El Servicio de Impresin Local: La impresin en UNIX se concibe como un servicio del sistema operativo. Esto significa que las tareas de impresin son resposabilidad de un daemon. El daemon de impresin es el lpd. Cuando lanzamos un comando de impresin (lpr), el fichero ser pasado al daemon que ser quien lo enve a la impresora. Para corregir problemas de impresin en tiempo real (atascos de papel, bloqueos de las impresoras) existe un comando que nos permite entrar en un entorno para el control de las impresoras, ese comando se llama: lpc. Por supuesto, para que todo esto funcione, es necesario tener instalado el paquete que contiene todas las utilidades de impresin (en Linux, lpr o lprdev versin avanzada-). Normalmente, este paquete siempre se instala por defecto. 3 .- Instalacin de Impresoras. Para instalar una impresora en UNIX es necesario darla de alta en el fichero /etc/printcap y reiniciar el daemon lpd (el daemon lee el fichero printcap al arrancar). Para reiniciar el daemon podemos ir a /etc/init.d y usar el script lpr (lpr stop y lpr start). Cada lnea del fichero printcap define una impresora. Para cada impresora se define un nombre, un directorio donde almacenar los archivos intermedios de impresin (spool area), un dispositivo fsico al que acceder (un puerto; representado en UNIX por un archivo: /dev/lp0 para LPT1, /dev/lp1 para LPT2) y uno o ms filtros. Los filtros son scripts que trasnforman los ficheros antes de pasar por la impresora (en el siguiente apartado hablaremos ms de los filtros). Para conocer el formato de /etc/printcap lo mejor es disponer de uno de ejemplo que contenga muchos tipos de impresoras. El manual oficial para este tema es el Linux Printing HowTo. 4 .- Drivers de Impresin Lo que hemos visto hasta ahora sirve para que si escribimos un comando que imprima un fichero como: lpr pepe, el fichero pepe sea mandado a la impresora por defecto (la que se defina como tal en el printcap). Pero ahora la cuestin es: Se imprimir algo ? Pinsese que, hasta ahora, cuando se dijo enviar a la impresora nos referamos a que los datos son fsicamente alimentados al puerto de la impresora sin ningn cambio. Eso

funcionar bien con cualquier impresora si el fichero es ASCII. Como sabemos bien, cuando se quiere imprimir algo medianamente compicado el ASCII no es suficiente. Windows resuelve este problema a travs de drivers, esto es: cuando se instala una impresora es obligatorio cargarle un driver (o incluso varios). Cuando un programa quiere imprimir, va a hacerlo a travs del driver. Podemos decir que el driver genera un fichero en el lenguaje nativo de la impresora y que eso es lo que nos permite imprimir correctamente. Linux, por el contrario, no utiliza driver de impresin alguno. En principio, es resposabilidad del usuario enviar los datos en un lenguaje que la impresora entienda. La situacin no es tan dramtica como parece. Casi todos los programas de Linux que son susceptibles de imprimir documentos generar para imprimir formato Postcript9 (.ps). Eso es lo que hacen LaTex y Lyx (conocidos procesadores de textos), netscape.... Eso significa que si nuestra impresora es postcript no tendremos problemas. Si no lo es deberemos instalar un paquete llamado ghostcript. Este programa es capaz de convertir entre los formatos de impresoras diferentes, soportando muchsimos modelos. Lo habitual para automatizar las tareas es crear un pequeo programa que haga la conversin de postcript a nuestra impresora (ese programa ser un archivo de comandos o script). Si el programa est bien hecho, debera ser capaz de distinguir entre la entrada en ASCII y la entrada en postcript, entonces se puede instalar como filtro en el printcap (el filtro ser aplicado a todos los ficheros que se vayan a imprimir; si son ASCII no har nada, si son postcript los convertir usando el ghostcript). Existen filtros ya hechos y probados en INTERNET y tambin en algunos CDs de Linux. 5 .- Compartir impresoras en red 5.1 .- El Servidor: Una vez configurada una impresora localmente podemos permitir a otras mquinas que impriman en ella. El fichero /etc/hosts.lpd contiene la lista de mquinas a las que se les permite imprimir remotamente. 5.2 .- El Cliente: Para montar un cliente de impresin basta con definir la impresora como remota en /etc/printcap (en este caso en vez del puerto fsico se da el nombre del ordenador donde la impresora est fsicamente -servidor de impresin-).

El postcript fue inventado por Adobe y es el lenguaje de descripcin de pginas de impresora ms extendido y utilizado.

Referencias Comentadas: http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html .En esta direccin se tiene la lista oficial de los HOWTOs de Linux (en ingls). El PrintingHOWTO explica todas las cuestiones relativas a impresoras. http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. Los que interesan para este tema seran: 5. Linux Instalacin y Primeros Pasos, de Matt Welsh. Traduccin de la versin 2.2.2 del libro Linux Installation and Getting Started (traduccin coordinada por Alfonso Belloso). Se trata de un libro de introduccin, ideal para principiantes. 6. Gua del Usuario de Linux, de Larry Greenfield . Traduccin del libro Linux User's Guide (traduccin coordinada por Csar Ballardini). Es un libro para todos los usuarios de GNU/Linux. ftp://www-wks.acs.ohio-state.edu/sysadm_course/sysadm_book.ps .- Este documento es el libro "UNIX System Administration", de F. G. Fiamingo (de la Universidad Ohio State, U.S.A.). Se trata de un texto excelente sobre la instalacin y administracin de sistemas UNIX que particulariza los ejemplos para Solaris e IRIX (Silicon Graphics). Linux in a Nutshell de Ellen Siever (editorial O Reilly & Associates Inc). Este libro pertenece a la coleccin Nutshell de la editorial OReilly (esta es una coleccin de enorme prestigio en el mundo de los libros tcnicos sobre redes y sistemas operativos). Contiene una extensa y nutrida seccin de los comandos usados en Linux de casi 160 pginas en donde se detallan todos los comandos del sistema.

TEMA 9 .- PROTOCOLOS NO NATIVOS


1 .- Introduccin En este tema vamos a ver un concepto muy interesante. Se trata de ver cmo en un servidor UNIX podemos instalar programas que implementan protocolos no nativos. Si se instala, por ejemplo, el IPX/SPX tendremos un servidor UNIX capaz de servir ficheros con el protocolo de las redes Novell. En esta situacin nuestro servidor UNIX se habr disfrazado de servidor Netware, con lo que todos los clientes pensarn que, realmente es un servidor Netware el que se est comunicando con ellos. Debemos comentar que la base de las redes multiprotocolo es que comparten al protocolo ethernet en la parte baja de la torre. Las tramas ethernet tienen un campo llamado tipo de protocolo que indica a qu protocolo de nivel superior pertenece la trama que hay metida en el campo de datos. Esto permite tener, por ejemplo, una red Novell y una red TCP/IP compartiendo medio (esto es en la misma LAN ethernet y con el mismo cableado). Las mquinas Novell ignorarn los paquetes IP y viceversa. En esta situacin es posible que una mquina hable varios idiomas a la vez, esto es: es capaz de leer y generar tramas de varios protocolos. 2 .- Inclusin del Protocolo SMB en un Servidor UNIX El protocolo SMB (Server Message Block) es un protocolo de comparticin de disco e impresoras similar a NFS. Su origen estuvo en las redes que tenan un servidor OS/2 al que se le instalaba el software adicional LAN MANAGER. SMB al ser un protocolo de disco se sita en el nivel de aplicacin. Tradicionalmente, SMB funcionaba sobre NETBIOS por lo que no poda utilizarse en redes segmentadas por routers. Adems, NETBIOS es un protocolo muy poco eficiente (genera mucho trfico innecesario y usa mucho la difusin) por lo que no es recomendable. Microsoft implement el protocolo SMB dentro del Windows 3.11, este fue el origen de las llamadas redes de Windows para trabajo en grupo. El par de protocolos de aplicacin/transporte segua siendo SMB/NETBIOS. Con el lanzamiento de Windows-95, Microsoft reimplement el protocolo SMB de manera que es capaz de funcionar con dos transportes: NETBIOS o TCP/IP. Microsoft afirma que ha retenido el NETBIOS solamente por compatibilidad con el Windows 3.11. Con el par de protocolos SMB y TCP/IP podemos montar muy fcilmente una red si nuestros ordenadores corren WINDOWS-9x o NT. Si hay mquinas 3.11 deberemos usar NETBIOS. Con un servidor UNIX es posible dar servicio de disco e impresoras a travs del protocolo SMB (y con TCP/IP o NETBIOS por debajo). Eso es posible gracias a un

paquete llamado samba que est disponible en Debian Linux a travs de la utilidad dselect. Si vamos a montar un servicio samba sobre TCP/IP no necesitaremos recompilar el ncleo del sistema. Pero s para hacerlo sobre NETBIOS. La ltima versin de samba hace que podamos lograr que una mquina Linux sea completamente indistinguible por red de una mquina NT. La seguridad en el acceso a recursos samba se basa en un control de acceso por cuenta. Esto es: al querer acceder a un recurso de red se pide un login y una password, pero el acceso puede hacerse desde cualquier PC conectado a la red. El fichero /etc/exports no tiene ningn control aqu sobre qu direccin IP accede a los discos; al igual que el /etc/hosts.lpd no tiene control alguno sobre las direcciones IP que acceden a las impresoras. Un paquete relacionado con samba llamado smbfs permite implementar el escenario contrario, esto es: actuar como cliente y permitir a una mquina UNIX acceder a recursos (discos e impresoras) presentes en mquinas NT o WINDOWS-9x. De hecho, con este paquete instalado existe un comando llamado smbmount que permite montar los discos de Windows como si fueran NFS. 3 .- Un Ordenador MAC como Cliente en una Red IP Los ordenadores MAC tienen un TCP/IP (llamado comercialmente MAC TCP) que es capaz de leer el correo, ejecutar telnet's... Sin embargo, el MAC TCP no es suficiente para montar discos por NFS. Existe un cliente de NFS para MAC, pero es caro y lento. Para dar servicio a los MAC's en una red IP se suele usar otro mtodo. Los MAC's tienen su propio protocolo de comparticin de disco: el protocolo appletalk (o ethertalk cuando se realiza sobre una red ethernet). Para que un MAC pueda ver los discos de un servidor UNIX se suele instalar el software netatalk en este ltimo. netatalk es un software disponible en la distribucin Debian y sirve para que el servidor UNIX "hable ethertalk". netatalk se puede instalar desde la utilidad dselect y apenas requiere configuracin. Casi la nica necesaria es definir los directorios a exportar en un fichero llamado AppleVolumes.default (que viene a ser el homlogo del exports de NFS). appletalk es un protocolo que se autoconfigura (su mayor problema tcnico es que no atraviesa routers por lo que slo se puede usar en entornos locales). La parte ms compleja de esta instalacin es incluir el protocolo ethertalk en el kernel de linux. Si simplemente instalamos netatalk e intentamos lanzar el servicio, veremos que no llega a arrancar muriendo con un mensaje de error. Para la inclusin del nuevo protocolo es necesario recompilar el ncleo del sistema (o cargar el mdulo correspondiente).

El paquete netatalk tambin permite que los MACs usen las impresoras que estn instaladas en el servidor UNIX y el control de accesos es tambin basado en cuenta (no en direccin IP como hace el NFS).

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. El que interesa para este tema sera: Gua de Administracin de Redes, de Olaf Kirch. Traduccin de la versin 1.0 del libro Linux Network Administrator Guide (traduccin coordinada por Juan Jos Amor). Da una visin muy general y prctica de los protocolos de INTERNET as como de su uso desde Linux. http://www.samba.org .- Web oficial del proyecto Samba. http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html .En esta direccin se tiene la lista oficial de los HOWTOs de Linux (en ingls). El SMBHOWTO explica todos los detalles de samba en Linux. http://www.umich.edu/~rsug/netatalk .- Pgina sobre NETATALK. http://www.anders.com/projects/netatalk .- Este es un HOWTO (no reconocido oficialmente, por eso no est en linux.org) sobre NETATALK en Linux. "Redes de Ordenadores" de A. S. Tanembaum (editorial Prentice Hall). Excelente libro sobre arquitecturas de protocolos. Las ediciones antiguas describan los protocolos O.S.I. Las nuevas reconoce la muerte de O.S.I. y describe los protocolos internet.

TEMA 10 .- DNS (DOMAIN NAME SYSTEM)


1 .- Introduccin El DNS (Domain Name System) realiza la funcin de traducir entre nombres textuales de mquinas (como nilo.tsc.uvigo.es) y nmeros IP (como 193.146.38.80). Esta funcin ya era realizada por el NIS, pero slo en redes locales. La traduccin directa se hace entre un nombre textual y un nmero IP y la traduccin inversa se realiza entre un nmero IP y un nombre textual. Este servicio es bsico para todos los dems, puesto que facilita el acceso a los servidores de Ftp, Correo, Web... con nombres adecuados. El DNS fue desarrollado en las primeras versiones de UNIX en la Universidad de Berkeley, por eso, muchas veces se le llama BIND (Berkeley INTERNET Name Domain). De hecho, el paquete que implementa el DNS en Linux se llama bind. 2 .- Funcionamiento del Servicio de Nombres Los nombres que se asignan con el DNS estn estructurados jerrquicamente en dominios10 que se subdividen, a su vez, en dominios de menor tamao. Por ejemplo, en el nombre nilo.tsc.uvigo.es puede verse que el dominio ms grande (de mayor nivel jerrquico) es el es (Espaa). Un subdominio de ste es el uvigo.es (Universidad de Vigo). Y otro subdominio, menor todava, es el tsc.uvigo.es (rea de T.S.C.). En el primer captulo, hablamos de la delegacin sucesiva de autoridad para adjudicar direcciones IP. Generalmente, sern estas mismas autoridades las que decidirn sucesivamente las subdivisiones y los nombres de los subdominios creados. Los servidores de DNS tambin se organizan jerrquicamente. Es similar al ejemplo de las centrales telefnicas en el que cada central sabe una parte de la solucin y el funcionamiento conjunto de todas permite resolver el problema. En principio, cada dominio debe tener un servidor principal que contenga las direcciones de las mquinas conectadas a l. Si del dominio cuelgan subdominios, el servidor de DNS tendr la direccin y el nombre del servidor de cada subdominio (servidores de nivel jerrquico inferior). El conjunto de mquinas dependientes de un servidor DNS recibe el nombre de zona. Hablando estrictamente una zona no es lo mismo que un dominio; aunque, muchas veces, coinciden. Un caso en el que no coinciden es aqul en el que un slo servidor sirve a dos dominios (los dos dominios son disjuntos pero forman una sola zona). Ntese que cada dominio necesita un servidor principal pero un servidor puede servir ms de un dominio. Toda mquina que est en un subdominio de INTERNET debe saber quin es el servidor DNS de su dominio (es ms, cualquier implementacin de TCP/IP debe, obligatoriamente, incluir un cliente DNS). En UNIX, esto se consigue con el fichero
10

No confundir el dominio DNS con el dominio NIS.

/etc/resolv.conf que contiene el nmero IP del servidor en cuestin. A veces, por redundancia, se tienen servidores secundarios que sirven para mantener el servicio si falla el principal. El mecanismo para buscar una direccin es como sigue: la mquina que quiere buscarla le pregunta a su servidor ms cercano (al de su dominio). Si este servidor tiene la informacin, ya est. Si no, el servidor pregunta al root server o servidor del nivel jerrquico ms alto (ds.internic.net es uno de ellos, hay varios alternativos). Desde ah, la peticin va bajando por la jerarqua hasta encontrar el servidor que tiene la informacin deseada. Tambin es posible mejorar la eficiencia haciendo que el servidor DNS sepa a donde dirigir las consultas ms frecuentes, es decir: evitando que tenga que subir hasta el punto ms alto. Para eso, se le pueden configurar algunos servidores de consulta frecuente (forwarders). Lo ms interesante es que el servidor va anotando en una cach (memoria temporal) todos los servidores de dominio con los que va contactando. Por eso, si se produce una segunda pregunta sobre un dominio dado, ya se conoce al servidor y ya se va directamente a l (en vez de recorrer otra vez todo el rbol hacia abajo). Muchas veces, la informacin sobre un dominio est replicada en otros servidores. Esto sirve para obtener las direcciones ms rpidamente y para sobrevivir a cadas de los servidores principales. Se dice que un servidor tiene "autoridad" sobre su dominio pero puede tener tambin informacin "non-authorative" sobre otros. El "non-authorative" indica que no es el servidor principal sino una copia. Por eso puede no estar del todo actualizado. La utilidad UNIX, nslookup nos permite consultar al DNS tanto con peticiones directas como inversas. 3 .- Instalacin En Debian Linux podemos instalar un servidor de DNS con la utilidad dselect. El paquete a elegir se llama bind. La configuracin guiada nos preguntar el nombre del dominio que va a servir y crear unos ficheros de definicin de dominio (contienen la direccion y nombre, o nombres, de cada mquina) bsicos. Ser tarea del administrador completar esos ficheros. El formato de los ficheros del DNS sigue un estndar que es igual en todas las implementaciones de BIND. Aunque en algunas existen herramientas grficas que permiten su manejo (como en la versin de Windows NT). Una magnfica descripcin de este formato se puede encontrar en el libro Linux Network Administrator Guide de Olaf Kirch. En el DNS adems de definir todos los pares nombre/direccin se definen adems otros datos, a saber: - Qu mquina es el servidor de nombres del dominio.

- Qu mquina es el servidor de correo (o los servidores) del dominio. - Una mquina siempre tiene un nombre de dominio oficial (o principal) pero se le pueden definir tantos nombres secundarios (o alias) como se quiera. Hasta ahora hemos visto tres formas de traducir nombres a direcciones IP: el fichero hosts, el NIS y el DNS. En una misma mquina pueden coexistir las tres. Para ello hay que editar el fichero /etc/host.conf. En este fichero hay una lnea que define el orden en el que se usarn estos tres sistemas a la hora de resolver un nombre (convertirlo en direccin IP). La lnea tendr la siguiente forma: order files,nis,bind (se pueden poner hasta tres nombres en el orden que se quiera separados por comas).

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. El que interesa para este tema sera: Gua de Administracin de Redes, de Olaf Kirch. Traduccin de la versin 1.0 del libro Linux Network Administrator Guide (traduccin coordinada por Juan Jos Amor). Da una visin muy general y prctica de los protocolos de INTERNET as como de su uso desde Linux. DNS and BIND de P. Albitz y C.Liu (editorial O Reilly & Associates Inc). Libro perteneciente a la prestigiosa coleccin Nutshell de la editorial OReilly. Es un texto muy bueno sobre el DNS y todas sus posibilidades.

TEMA 11 .- SERVICIOS DE CORREO: SENDMAIL


1 .- Introduccin En este tema vamos a ver los servicios de correo electrnico. Este servicio se ha convertido en el ms utilizado y el ms importante de las redes TCP/IP. Es el primero por el que protestarn los usuarios si falla y tambin es aqul en que los fallos (prdida de mensajes) pueden llegar a ser ms graves. 2 .- Funcionamiento del Correo Electrnico: Los programas de gestin del correo electrnico (agentes de correo) son parte de los S.O. UNIX. El buen funcionamiento del correo depende totalmente del DNS. Como vimos en el tema anterior, en los ficheros de configuracin del DNS debemos especificar qu ordenador del dominio ser el servidor de correo. A ese servidor se le llamar MX (Mail eXchanger). Llegados a este punto, deberamos tener el correo en funcionamiento en dicha mquina MX. Si nuestro dominio es tsc.uvigo.es y el MX es nilo.tsc.uvigo.es, para todos los usuarios de nilo funcionar el correo. Si fmartin es un usuario de nilo, su direccin ser: fmartin@tsc.uvigo.es (aunque no se especifique al servidor de correo el DNS sabr encontrarlo). La direccin como fmartin@nilo.tsc.uvigo.es tambin ser vlida (simplemente, estamos dando informacin de ms). Es ms: si en el dominio tsc.uvigo.es existe otra mquina UNIX llamada fideo y fmartin es usuario de fideo la direccin fmartin@fideo.tsc.uvigo.es tambin podra ser vlida. Lo ser si en fideo hay un proceso sendmail activo. Si queremos que desde fideo se pueda enviar correo, es obligatorio tener ese proceso activo. Esta ltima situacin no es nada deseable: normalmente, podr haber varios puestos UNIX en una red a los que acceden los mismos usuarios. Nuestro deseo es que se pueda leer y enviar el correo desde cualquiera de ellos. Tambin deseamos que la direccin de correo no dependa de la mquina desde la que se envi. Y lo ms intolerable es que un usuario pueda tener mensajes de correo distintos segn a qu mquina se conecte. Los pasos para conseguir una configuracin correcta son: - Configurar todos los puestos menos el MX como mquinas que dependen de un host principal o relay para enviar el correo. As cada puesto enviar su correo al MX y desde fuera parecer que todos los mensajes vienen de MX. Esto se consigue en la etapa de configuracin de sendmail. - El mail recibido se almacena en un fichero con el nombre del usuario y en el directorio /var/spool/mail. Si ese directorio se comparte con NFS, cualquier usuario podr leer el mail desde cualquier mquina. Y ese mail ser el mismo en toda la red. - Debemos configurar sendmail en la mquina MX de manera que en el From: (la direccin de retorno de la cabecera) aparezca

usuario@nombre.de.dominio. Esto tambin se consigue en la etapa de configuracin de sendmail. 3 .- Instalacin El agente de correo para UNIX es un paquete llamado sendmail. Si instalamos el paquete sendmail en un Linux Debian (usando dselect), se arrancar un programa de configuracin que nos ir preguntando las diferentes opciones del correo (muchas). Este mtodo es, sin embargo, mucho ms cmodo que el antiguo. El mtodo clsico consista en que el administrador editase manualmente un fichero (de un formato complicadsimo) llamado /etc/sendmail.cf.

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. El que interesa para este tema sera: Gua de Administracin de Redes, de Olaf Kirch. Traduccin de la versin 1.0 del libro Linux Network Administrator Guide (traduccin coordinada por Juan Jos Amor). Da una visin muy general y prctica de los protocolos de INTERNET as como de su uso desde Linux. http://www.sendmail.org .- Web oficial del Sendmail Consortium que dirige el desarrollo de la versin libre de sendmail. Hay versiones estables y experimentales, documentacin... DNS and BIND de P. Albitz y C.Liu (editorial O Reilly & Associates Inc). Libro perteneciente a la prestigiosa coleccin Nutshell de la editorial OReilly. Es un texto muy bueno sobre el DNS y todas sus posibilidades.

TEMA 12 .- SERVICIOS WEB: APACHE


1 .- Introduccin En este tema veremos el servicio que ms ha crecido ltimamente: el Web. El Web naci en un centro de investigacin de partculas de Ginebra (el CERN) como una forma fcil de publicar informacin en la red y acceder a ella de forma grfica. Su xito y crecimiento han sido tan grandes que mucha gente identifica INTERNET con este servicio. Las bases tcnicas de este servicio son dos: - El formato HTML (Hypertext Markup Language): Es es un estndar que define una serie de instrucciones de forma que a travs de un fichero ASCII se puede describir un documento con una gran riqueza de contenidos. La idea de HTML es similar a otros formatos ASCII como LaTex o, incluso, postcript pero con dos diferencias fundamentales: primera diferencia, los documentos HTML no estn pensados para ser impresos como en el postcript sino para ser vistos en pantalla; segunda diferencia, el HTML implementa el concepto de hipertexto, esto es: en un documento HTML se pueden insertar saltos que nos pueden llevar a otros documentos (concepto ya usado en sistemas anteriores como, por ejemplo, la ayuda de Windows). - El protocolo HTTP (Hypertext Transfer Protocol): Este protocolo es el que permite que los documentos HTML sean compartidos en INTERNET. El HTTP funciona sobre TCP porque tiene que ser capaz de enviar los datos a gran distancia. A pesar de haber nacido en el CERN, el Web debe gran parte de su popularidad al NCSA (National Center for Supercomputing Applications) de la Universidad de Illinois. All se desarroll uno de los primeros servidores (que mejoraba al del CERN) y el primer navegador con unas caractersticas grficas aceptables: MOSAIC. Posteriormente, los desarrolladores de MOSAIC fundaron una empresa para seguir el proyecto: le llamaron NETSCAPE. Actualmente, el mejor servidor Web del mercado es libre y se llama APACHE (es el que vermos en este tema). NETSCAPE ha perdido muchsima cuota de mercado y sus ltimos productos son de una calidad muy deficiente. Se est desarrollando un nuevo navegador llamado MOZILLA pero el proyecto est an algo inmaduro. La poltica de Microsoft de introducir componentes ligeramente incompatibles en las herramientas de desarrollo Web est teniendo xito y el Explorer es lder de mercado ahora. De hecho, hay muchsimas pginas hechas para explorer que fallan en todos los dems navegadores. Esperemos que el software libre acabe ganando, para bien de todos.

2 .- Funcionamiento del Servicio Httpd El servicio http es un servicio de red ms que funciona desde el puerto 8011. Para que funcione dicho servicio es necesario instalar un daemon httpd o Servidor Web. Existen muchos daemons httpd disponibles para UNIX. Podemos citar los siguientes como los ms usados en UNIX: CERN (procedente del CERN suizo), NCSA (procedente del National Center for Supercomputing Applications) y APACHE. Todos ellos son libres y conseguibles fcilmente va INTERNET. Una forma fcil de comprobar si hay un servidor Web activo en nuestra mquina es hacer lo siguiente:
telnet DirIP 80

El telnet establece una conexin directa al puerto 80. Si no hay ningn proceso en ese puerto, el intento ser rechazado con un mensaje de error. Si la conexin se efecta no veremos ningn mensaje en la pantalla. Con un telnet normal aparece la palabra login porque el proceso del otro lado est esperando a un humano, pero el daemon httpd no da mensajes porque piensa que somos un navegador. Si (aunque no veamos ningn mensaje), escribimos:
GET /

Si el servidor funciona bien, veremos un volcado de HTML vomitado sobre la pantalla. Eso es porque el comando que hemos tecleado es un comando HTTP que solicita la pgina principal. Veremos adems que la conexin del telnet se cierra al acabar el listado. Eso es porque el protocolo HTTP no tiene estado, cada pgina se pide con una conexin distinta y el servidor no recuerda toda nuestra historia de peticiones. Cuando el inters de las pginas Web creci mucho empezaron a aparecer aplicaciones en las que era importante conocer el estado del cliente. Eso se ha ido resolviendo de diferentes formas: con envo por parte del cliente (POST) de campos ocultos (HIDDEN) que indican a los programas CGI el estado del cliente, con cookies, con aplicaciones Java que se ejecutan en el cliente y reconectan en otro puerto del servidor... Las aplicaciones Web han llegado a ser un mundo en s mismo.

11

En una mquina con TCP/IP puede haber varias conexiones a la vez (cada una para un proceso distinto). Para poder distinguirlas la direccin se extiende con un nmero de puerto de 16 bits (ejemplo: 172.19.53.30:80). Los 1024 primeros puertos pertenecen al administrador y es donde se alojan los servicios bsicos (cada uno en el suyo, el Web en el 80, el correo en el 25... ).

3 .- Instalacin Con las distribuciones de Debian Linux viene una versin de APACHE, que se puede instalar y configurar casi automticamente con dselect. Una de las preguntas que se hacen en la configuracin es en qu directorio vamos a poner nuestras pginas Web. El programa de instalacin coloca all una pgina de prueba. Esto ltimo est pensado para que nosotros sustituyamos la pgina de prueba por nuestras propias pginas. A partir de ese momento, tendramos un servidor Web propio correctamente configurado. Para cambiar opciones hay que editar el fichero de configuracin (/etc/apache/httpd.conf) que en este caso es bastante intuitivo (y est documentado). Para que el cambio sea efectivo habr que reniciar el servidor: etc/init.d/apache restart

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. El que interesa para este tema sera: Gua de Administracin de Redes, de Olaf Kirch. Traduccin de la versin 1.0 del libro Linux Network Administrator Guide (traduccin coordinada por Juan Jos Amor). Da una visin muy general y prctica de los protocolos de INTERNET as como de su uso desde Linux. http://www.apache.org .- Web oficial del proyecto apache con versiones para diferentes plataformas (includo windows), documentacin...

TEMA 13 .- OTROS SERVICIOS: INETD, FTP, TELNET


1 .- Introduccin Para este tema hemos dejado otros servicios menos importantes pero que tambin merecen nuestra atencin. Con ellos completamos una visin bastante completa de los servicios de INTERNET en UNIX. 2 .- El Daemon inetd: El daemon inetd es el que hace funcionar, entre otras muchas, las aplicaciones de las que vamos a hablar en los dos apartados siguientes. Todos los sistemas operativos UNIX lo instalan por defecto con el sistema bsico. Si en una mquina UNIX no hay un proceso inetd activo, prcticamente ninguna aplicacin de red funcionar. Podemos cerciorarnos de la presencia de inetd haciendo: ps waux | grep inetd. La manera de funcionar de inetd es la siguiente: el daemon de ftp (in.ftpd)no est permanentemente escuchando en su puerto12 (el 21) si entran conexiones activas. Cmo consigue entonces responder? Es el inetd el que est escuchando. Cuando entra una conexin inetd lanza el programa que implementa el ftp y redirecciona la conexin a un puerto no usado. El inetd seguir escuchando en el puerto 21, asegurando la respuesta a una segunda conexin entrante. Es de este modo como se consiguen varias conexiones simultneas. inetd es utilizado por aqullas aplicaciones que estn esperando por una conexin entrante que llegar siempre por el mismo puerto pero en cualquier momento (una excepcin es el Web que por su importancia y complejidad tiene su propio proceso a la espera). De hecho, hay servicios en los que puede elegirse por configuracin si se lanzan desde inetd o desde su propio programa de escucha. Podemos consultar/modificar los servicios de inetd a travs de su fichero de configuracin /etc/inetd.conf. En este fichero podemos ver las aplicaciones que dependen de inetd, el protocolo de transporte (TCP o UDP) usado en cada una y el ejecutable que se lanza cada vez que hay una conexin entrante. Como ejemplo de aplicaciones que dependen de inetd podemos citar: ftp, telnet, rsh, rlogin, finger, tftp, bootp, smtp, pop3... De las anteriores tienen gran importancia SMTP y POP3. SMTP es el responsable de que llegue el correo que viene de otros servidores. POP3 permite que los clinetes de mail grficos (como NETSCAPE o EUDORA) lean el correo.

12

Podemos conocer el puerto asignado a cada servicio consultando el fichero /etc/services.

3 .- El Ftp, Ftp Annimo: Para que una mquina UNIX acepte conexiones Ftp (file transfer protocol), es necesario que tenga activo un daemon, ftpd o in.ftpd. Todos los UNIX instalan uno con el S.O. (y, generalmente, el programa de instalacin lo activa por defecto). Normalmente, el Ftp slo da servicio a los usuarios del servidor. Sin embargo, podemos definir una cuenta anonymous o ftp que permite a usuarios desconocidos entrar con permisos restringidos. Este usuario se define en /etc/passwd como un usuario normal pero con un * en el campo de clave (que indica que nunca va a entrar con una shell). El usuario ftp tendr definido un directorio home (muchas veces /home/ftp), que ser su directorio de arranque en el servidor. El daemon ftpd original del S.O. no ser normalmente suficiente para tener un servidor de ftp serio. En particular tiene dos grandes limitaciones: - No permite muchos usuarios a la vez. - No hace logs o ficheros donde se graben las acciones de los usuarios. Cuando se quiere montar un buen servidor de ftp, es necesario recurrir a daemons ftpd ms avanzados. Existen varios disponibles va INTERNET. 4 .- La Ejecucin Remota de Aplicaciones (telnet): El telnet es un servicio que permite abrir una shell o lnea de comandos en otra mquina. A travs de un telnet se puede ejecutar cualquier aplicacin de forma remota. Todos los S.O. UNIX instalan por defecto un telnet preconfigurado. Cuando un usuario ejecuta telnet nilo, est ejecutando un cliente telnet. En nilo existir un proceso que atender su peticin. Este proceso es el servidor o daemon del telnet, telnetd o in.telnetd.

Referencias Comentadas: http://lucas.hispalinux.es/htmls/manuales.html .- En esta direccin se tienen varios manuales completamente libres y en formato electrnico. El que interesa para este tema sera: Gua de Administracin de Redes, de Olaf Kirch. Traduccin de la versin 1.0 del libro Linux Network Administrator Guide (traduccin coordinada por Juan Jos Amor). Da una visin muy general y prctica de los protocolos de INTERNET as como de su uso desde Linux.

TEMA 14 .- INTRODUCCIN A LA SEGURIDAD


1 .- Introduccin: Entendemos por seguridad de un sistema informtico (y una red es un caso particular), la capacidad de dicho sistema para conceder el acceso a sus recursos slo a los individuos autorizados y slo del modo autorizado (un recurso puede tener varios modos o "niveles" de acceso; por ejemplo a un fichero se puede acceder en lectura o en lectura y escritura). Un sistema seguro debe rechazar a los usuarios no autorizados a un determinado servicio. Tambin debe detectar los intentos de acceso ilegal y dejarlos de manifiesto en los ficheros de registro ("log's") del sistema. Existen unas especificaciones que determinan el nivel de seguridad de un sistema dado. Este documento clasifica a los sistemas en las siguientes categoras de seguridad: A1, B3, B2, B1, C2, C1 y D (ordenados de mayor a menor seguridad). Esta clasificacin fue establecida por un centro de investigacin del gobierno norteamericano (el N.I.S.T. o National Institute of Standards and Technology) y es aceptada en todo el mundo. El nivel D corresponde a sistemas sin seguridad alguna. El nivel C2 es el exigido por el gobierno norteamericano para instalaciones civiles y el recomendado en redes corporativas. Los niveles superiores corresponderan a instalaciones militares en las cuales la seguridad es prioritaria. Si consideramos una mquina aislada podemos hablar de la seguridad que ofrece su sistema operativo. Si esa mquina es un servidor de red, podr recibir ataques no slo locales sino tambin remotos (desde la red local o incluso desde el exterior si existen conexiones a WAN's). Podemos hablar entonces de nivel de seguridad de un sistema operativo como el nivel que se consigue teniendo dicho sistema en una mquina aislada o tenindolo en todos los servidores de una red local. Los sistemas tpicos de sobremesa como MS-DOS, Windows (excepto NT y 2000), Mac OS y OS/2 no disponen de mecanismos de seguridad aceptables. El N.I.S.T. los ha calificado a todos en el nivel D. UNIX alcanza (tambin segn el N.I.S.T.) el nivel C2. Por ltimo, Windows-NT (y W2000) ha conseguido tambin la calificacin oficial de seguridad C2 por parte del N.I.S.T. Sin embargo, para conseguir un sistema Windows-NT con seguridad C2 es necesario restrigirlo a un ordenador sin tarjeta de red y sin disketera (es decir: un sistema difcilmente usable). Por eso esta ltima calificacin ha sido tachada de engaosa. Esta ltima ancdota nos introduce el mayor problema de la seguridad. Es decir: el sistema ms seguro es el sistema que no hace nada. Cada servicio de un sistema implica un peligro (o "agujero") para la seguridad del mismo. Adems, las medidas de seguridad son siempre incmodas tanto para los usuarios como para el administrador. En todo sistema debe establecerse una "poltica de seguridad" que luego ha de implementarse

con las herramientas adecuadas. Esa poltica debe establecer cul es el nivel de seguridad exigido en funcin de los riesgos particulares de cada sistema. Ese nivel debe ser tal que no implique unas molestias excesivas a usuarios y administradores. En cuanto a los significados de las calificaciones oficiales de seguridad, debemos pensar que stas se han hecho suponiendo un funcionamiento "ideal" de los sistemas. Es decir: se han hecho suponiendo que el software va a hacer lo que dice en el manual. Sabemos que el software (tanto el comercial como el libre) tiene muchos fallos que provocan a veces comportamientos anmalos. Muchas formas de atacar sistemas se basan en conocer y aprovechar esos fallos. La nica forma de protegerse contra esto es consultar peridicamente los informes que tengamos disponibles (generalmente, a travs de INTERNET) sobre los fallos conocidos de nuestro sistema. Muchas veces se publican (tambin en INTERNET) "parches" o correcciones a estos problemas (no todos los parches resuelven problemas de seguridad, pero s la mayora). Es especialmente peligroso tener versiones muy antiguas de software en mquinas de seguridad comprometida. Estas versiones son las que ms fallos tienen (y sus fallos son los ms difundidos). 2 .- Tipos de Ataque: El estudio de la seguridad siempre pasa por conocer las posibles maneras en que un sistema puede ser atacado. Podemos clasificar los ataques de las siguientes maneras. Primera clasificacin, segn el origen del ataque. Se puede hablar de: - Ataques internos: se producen por parte de un usuario que ya tiene acceso al sistema e intenta conseguir derechos que no tiene. - Ataques externos: el atacante no es usuario del sistema y el ataque se produce a travs de una red de comunicaciones. Segunda clasificacin, segn las intenciones del ataque: - Ataques intrusivos: intentan ganar derechos de acceso ilegalmente. - Ataques no intrusivos: no intentan acceder al sistema sino sobrecargarlo, hacerlo inutilizable... Podramos calificarlos como actos deliberados de sabotaje (aqu entraran los virus). En los siguientes apartados veremos algunos ejemplos de posibles ataques contra los que deberemos protegernos. 3 .- Distincin entre Seguridad "Pasiva" y "Activa". En la teora de la seguridad de sistemas es habitual distinguir entre dos tipos de medidas: - Medidas Pasivas: consisten en estudiar adecuadamente la configuracin de nuestras mquinas para que no estn concediendo (sin que lo sepamos) permisos inadecuados. La configuracin de todas las opciones de seguridad de

una mquina UNIX puede llegar a ser complicada. Debemos conocer las opciones que se instalan por defecto con el sistema operativo y que pueden llegar a representar un problema de seguridad. Aqu entra la seguridad que nos ofrece el sistema operativo - Medidas Activas: consisten en la adicin al sistema de elementos hardware y/o software cuyo propsito es aumentar la seguridad del mismo. Los dos apartados siguientes tratarn el tema de la seguridad pasiva. Despus, hablaremos de medidas de seguridad ms fuertes (activas). 4 .- La Seguridad de una Mquina UNIX Aislada: La seguridad de UNIX tiene dos pilares bsicos: el sistema de permisos sobre ficheros y el sistema de contraseas. Estos dos elementos son comunes a otros sistemas (como Windows-NT). Del sistema de permisos ya hablamos en el captulo 4. Aqu explicaremos el sistema de contraseas y despus comentaremos un aspecto de especial inters para la seguridad en UNIX, los ficheros SETUID. 4.1 .- El Sistema de Contraseas: El sistema de contraseas es el ms importante para la seguridad de un sistema UNIX. Este sistema decide quin y con qu permisos es admitido en el sistema. Como ya vimos en el tema 4, en los sistemas UNIX toda la informacin sobre las cuentas de usuario se guarda en un fichero llamado /etc/passwd. Un fichero de este tipo podra ser:
root:kEVc5/HiDj0Lc:0:0:root:/root:/bin/tcsh daemon:*:1:1:daemon:/usr/sbin:/bin/sh bin:*:2:2:bin:/bin:/bin/sh sys:*:3:3:sys:/dev:/bin/sh sync::4:100:sync:/bin:/bin/sync fmartin:81s32DlMs/CC6:1000:100:FM:/home/users/fmartin:/bin/tcsh

Como vimos en el tema 4, este fichero es una pequea base de datos de usuarios donde cada lnea es un registro y corresponde a una cuenta de usuario. Recurdese que los campos van separados por el carcter ":". Ahora, vamos a ver algunas caractersticas interesantes de este fichero que no vimos en el tema 4. A saber: 1 .- El root tiene uid=0. Cualquier otra cuenta con uid=0 ser tambin administrador del sistema. De hecho, dos cuentas con el mismo uid son iguales. Esta caractersictica puede usarla el administrador para crear cuentas con permisos de administracin (puertas de atrs). Tambin puede haber atacantes que creen cuentas de este tipo. 2 .- Las cuentas daemon, bin y sys han sido creadas por el sistema para diversas tareas. Todas tienen un "*" en el campo de password. Eso significa que se deniega su acceso directo al sistema. Es necesario tener cuidado con alguna de estas cuentas. Por ejemplo, muchos sistemas crean por defecto en la

instalacin cuentas como ftp (permite el acceso por ftp de usuarios annimos) o incluso guest (permite el acceso por telnet de usuarios annimos, sus permisos estaran muy limitados pero podran llegar a bajarse el fichero de passwords). La defensa frente a estos problemas consiste en eliminar todas aqullas cuentas que no necesitemos. Todo servicio innecesario (y, lo que es peor, desatendido) es un peligro potencial (las cuentas son servicios). 3 .- Vemos una cuenta sin clave !!! Esa cuenta se llama sync. Vemos que su shell es el comando /bin/sync. Ese comando no es un intrprete de mandatos como debera ser una shell sino que es una utilidad que sincroniza los discos (vaca los buffers intermedios de manera que despus de un sync se puede apagar la mquina a salvo). La cuenta sync tiene una utilidad importante: hay veces que la mquina queda bloqueada total o parcialmente. Si apagamos y volvemos a encender corremos peligro de perder informacin. Si el bloqueo no es total y podemos entrar como el usuario sync (local o remotamente) conseguiremos sincronizar el disco y podremos apagar sin peligro. El hecho de que no tenga clave tiene dos razones: la primera es que al no tener que pedir la clave damos menos ocasin a que la mquina se bloquee, la segunda que as no es necesario que est el administrador para hacerlo. Cualquier usuario puede hacerlo (y hacer un sync en funcionamiento normal es inofensivo). El problema de esta cuenta sin clave es que si, por cualquier motivo, el programa se corta aparecer una shell del usuario sync. Y eso s puede ser peligroso. A veces, se crean cuentas sin clave con uid=0. Estas cuentas tienen como shell un programa que hace algo que slo el administrador puede hacer, pero que interesa que pueda hacer cualquiera (montar/desmontar un CD-ROM, por ejemplo). En este caso el peligro es mucho mayor ya que si el programa rompe la shell que aparecer ser la de root. Esto ltimo no es recomendable en mquinas accesibles desde el mundo exterior. Otra utilizacin de shells no estndar es en cuentas de usuario que queremos que existan como tales pero que no accedan directamente a un determinado servidor. Esto es muy utilizado por proveedores de acceso a INTERNET. De nuevo, si el shell rompe tendramos una violacin de la poltica de seguridad con un usuario accediendo directamente cuando no debe hacerlo. Si usamos un shell no estndar, ste debe ser un programa muy depurado que no rompa en ningn caso.

4.3 .- Los Ficheros SETUID: Un fichero se convierte en SETUID con la instruccin: chmod u+s nombre_fichero El bit SETUID slo tiene sentido activarlo cuando se trata de un fichero ejecutable (de cualquier tipo: compilado, shell script ...). Su significado es el siguiente: cuando un

usuario lanza un programa, el proceso arranca como propiedad de ese usuario (y con los permisos de ese usuario); si el programa est declarado como SETUID, el proceso arrancar con los permisos del propietario del fichero ejecutable. En particular: si el programa SETUID pertenece al root, ese programa (lanzado por cualquiera que tenga permiso para ejecutarlo) podr hacer cualquier cosa dentro del sistema. Un ejemplo de lo anterior lo podemos encontrar en implementaciones antiguas del programa mail. Ese programa arrancaba con permisos de root. Esa era la manera de enviar un mail local (que, bsicamente, consista en escribir en un fichero ajeno). El problema de los programas con SETUID es que si rompen aparece una shell con los permisos del propietario (que puede ser el root). De nuevo el consejo es tener mucho cuidado con estos programas y hacerlo slo con cdigos muy depurados. Si lo que se hace es: chmod g+s nombre_fichero Lo que se consigue es que el proceso arranque con los permisos del usuario "como si ste perteneciera" al grupo del ejecutable del programa. Esta opcin es mucho menos peligrosa y es suficiente en muchos casos. De hecho, el programa mail actual funciona aadiendo al usuario los privilegios de un grupo llamado mail. Todos los ficheros del sistema pertenecen al grupo mail y ofrecen permisos de escritura a su grupo. De esta manera se consigue la funcionalidad deseada minimizando los riesgos. 5 .- Seguridad en Red para un Servidor UNIX: Cuando una mquina UNIX es un servidor de red hay que extremar el cuidado en ciertos detalles de configuracin que pueden causar serios problemas de configuracin. A continuacin, detallaremos cada una de las cuestiones a tener en cuenta: 1 .- La exportacin de directorios compartidos por NFS: debemos exportar los directorios solamente a las mquinas que vayan a usarlos. Si en el fichero exports no se especifica una lista de mquinas el directorio podr ser montado por cualquier mquina del mundo. 2 .- El protocolo tftp: si se usa el protocolo tftp para el arranque de mquinas sin disco deberamos tener mucho cuidado. Este protocolo slo permite leer ficheros, pero no pide clave. La seguridad consiste en que se pueden restringir los directorios a los que se puede acceder mediante tftp. Debemos asegurarnos que en los directorios permitidos slo est el software de arranque de nuestros terminales (despus de todo, eso no importa tanto que alguien se lo lleve). 3 .- El NIS: el NIS es una gran comodidad para el administrador pero un potencial peligro de seguridad. Si un intruso consigue conectar a nuestra red una mquina y la configura como servidor de NIS conseguir que parte de las mquinas de la red lo confundan con un servidor autntico (cuando un cliente

de NIS arranca pregunta con una trama broadcast quin es el servidor y se engancha al primero que responde). Lo peor de esto es que los clientes no saben si hay un servidor o varios y el servidor maestro tiene una lista de los esclavos que utiliza cuando hay cambios en los mapas. Un cliente no sabe si esta enganchado a un servidor maestro o uno esclavo (esta caracterstica es la que da su gran fiabilidad al NIS). Y como el maestro, cuando hace las actualizaciones, slo hace un "push" a sus esclavos; ni se enterara de que hay un servisor falso. Si el atacante es hbil, pondr en su servidor ilegal la misma informacin que en los otros (as todo seguir funcionando bien y nadie se dar cuenta). Si, en ese momento, aade al mapa de passwords una cuenta con uid=0, el intruso conseguir ser root de todas las mquinas que se engancharon a su servidor de NIS falso. La nica manera de protegerse frente a este tipo de ataques es controlar peridicamente qu mquinas hay conectadas a la red y qu servicios corre cada una. Hay programas que facilitan esta labor (analizadores de red o sniffers). Una solucin ms costosa para el control de las mquinas conectadas a la red ilegalmente es el empleo de concentradores con per-port switching. 4 .- El finger: el finger es un programa que permite conocer los logins y los nombres completos de los usuarios. Eso es til cuando queremos saber la direccin de correo de alguien que no conocemos. Muchos textos sobre seguridad recomiendan no permitir el finger desde el exterior de la red debido a que eso da informacin sobre los logins y los nombres reales y puede facilitar que un intruso se ponga a probar claves triviales. 5 .- Los archivos .rhosts: si un usuario crea en su cuenta un fichero .rhosts que contenga una serie de nombres de mquinas, podr cambiarse de una a otra sin necesidad de introducir claves. Eso es de gran utilidad para los usuarios. Pero nunca se deben tener archivos .rhosts en la cuenta de root. Eso provocara que un intruso que ha conseguido ser root en una mquina pudiera serlo en todas. Existe un programa disponible en INTERNET llamado SATAN (Security Administrator's Tool for Analyzing Networks). SATAN detecta los fallos de seguridad ms comunes de una red (entre otros, todos los anteriores). SATAN puede servir para descubir los fallos de seguridad de nuestra red, pero tambin puede usarse para descubir fallos en redes ajenas. SATAN es hoy da una herramienta bastante antigua pero en INTERNET existen otras muchas aplicaciones similares. Otro peligro de la seguridad en red es el hecho de que el intruso sea capaz de instalar un sniffer en la red. Existen programas capaces de interceptar todas las tramas de los rlogin's y telnet's (que contienen las passwords de los usuarios). Una proteccin contra esto sera instalar un sistema de seguridad integral que encripte todas las comunicaciones entre mquinas, ejemplos de esto son Kerberos y SSL. Estos sistemas son complicados y rebajan la eficiencia de la red al tener que dedicarse tiempo a cifrar/descifrar.

6 .- Medidas Activas de Seguridad en Red (FireWalls): La medida activa ms comn y potente que existe en la actualidad es la instalacin de un FireWall (cortafuegos). La funcin de un FireWall es la de hacer de filtro entre una red y el exterior, dejar pasar las comunicaciones inofensivas e impedir las nocivas (de ah su nombre). Los cortafuegos pueden clasificarse de dos formas. Si atendemos al modo de funcionamiento tendramos dos tipos de FireWall: - El router selectivo: Este tipo de FireWalls (tambin llamado filtro IP) est en el punto de conexin con el exterior y no acta como un router normal (que deja pasarlo todo), sino que dejar pasar slo aquellas comunicaciones que nosotros especifiquemos. Un filtro IP permite especificar qu conexiones IP entrantes se permiten segn la direccin IP y el puerto de destino, tambin permitir especificar las conexiones salientes permitidas segn direccin IP y puerto de origen. La mejor estrategia para la configuracin de un filtro IP consiste en empezar por no permitir ninguna comunicacin y despus aadir aquellos servicios que queremos tener con el exterior. Es decir: permitir salir al exterior a las peticiones de http, permitir entrar a las peticiones destinadas al servidor Web, permitir el intercambio de correo (slo con la mquina servidora de correo)... Esta configuracin debe hacerse de la manera ms restrictiva posible, esto es: nunca se deben dar ms permisos de los necesarios para no crear potenciales peligros.

Esquema tpico de una red con Filtro IP. - El Proxy: Un proxy (delegado) funciona como intermediario en todas las conexiones con el exterior. Esto es: cualquier servicio de red con el exterior se implementar con una doble conexin: de la mquina interna al proxy y del proxy al exterior. Si el ordenador exterior analiza la direccin IP que accede al servicio le aparecer la del proxy. Cuando se usa esta solucin; generalmente, todas las mquinas menos el proxy tienen direcciones privadas (a las que es imposible acceder desde el exterior). Esta es la solucin ms empleada hoy da porque permite controlar cada servicio por separado (generando logs de acceso tambin separados).

La otra clasificacin puede establecerse atendiendo a la arquitectura del FireWall. A saber: - FireWall software: Se construyen con un ordenador de propsito general (un PC o una estacin UNIX) cargando el software adecuado. Son mucho ms baratos que los basados en hardware especfico y tambin es mucho menos eficiente (porque los buses de un ordenador de propsito general no estn pensados para mover informacin a altas velocidades). Su principal desventaja es estar basado en un ordenador convencional con sistema operativo convencional (existen muchos paquetes de software para FireWall bajo UNIX y tambin bajo Windows-NT). El hecho de que se descubran y difundan muy rpidamente los fallos del sistema operativo y/o del software elegido lleva a ponernos en peligro frente a poteciales atacantes. Una posible ventaja es que las soluciones a esos problemas tambin se suelen descubrir y difundir con gran rapidez. - FireWall hardware: Se trata de un ordenador de propsito especial que slo funciona como FireWall (generalmente, todos los fabricantes de routers tienen algn producto de este estilo). Esta solucin es mucho ms cara que la anterior y tambin es mucho ms eficiente (dispone de buses optimizados para el movimiento de tramas a altas velocidades). Su principal ventaja es complementaria al caso software: est basado en un ordenador propietario con sistema operativo tambin propietario. En este caso el descubrimiento y difusin de fallos es muy lento. Pero ojo, tambin la solucin se descubrir y difundir ms lentamente. Para crear un FireWall basado en Linux existe un HOWTO dedicado al tema de los FireWalls que nos gua a travs de los pasos necesarios para montar un filtro IP o un proxy. Un filtro IP se puede crear de forma muy directa usando las opciones del ncleo y el FireWall toolkit (que viene en todas las distribuciones). Para crear un proxy es necesario instalar algn software que lo implemente, como, por ejemplo: squid. Cuando se usa un cortafuegos debemos tener muy claro que la seguridad del FireWall es la de toda la red. Dentro de la red se puede ser bastante relajado con la seguridad pero el FireWall debe estar protegido de forma paranoica (se deben desactivar todos los servicios no usados, si es un ordenador con Linux no debe haber cuentas de usuario... ).

Referencias Comentadas: http://www.linux.org/docs/ldp/howto/HOWTO-INDEX/howtos.html .En esta direccin se tiene la lista oficial de los HOWTOs de Linux (en ingls). El FireWallHOWTO (tambin llamado Firewall and Proxy Server HOWTO) explica como montar FireWalls de diferentes tipos con Linux. La ltima versin del documento es de febrero de 2000. ftp://www-wks.acs.ohio-state.edu .- De esta direccin se puede obtener el libro "Improving the Security of your UNIX System", de D. A. Curry (SRI International). En este texto se habla del sistema de usuarios y permisos como parte fundamental en la seguridad del sistema. http://www.trouble.org/~zen/satan/satan.html .- "SATAN: Security Administrator's Tool for Analyzing Networks" de M. Barkocy. Utilidad clsica para el anlisis de seguridad. Funciona en cualquier UNIX. Est disponible en INTERNET. Mucho cuidado con el llamado WINSATAN, no es ninguna herramienta, es un virus.

S-ar putea să vă placă și