1 Introducción a los servicios de red Objetivos del capítulo 4 Introducir los conceptos básicos de redes de comunicaciones. 4 Conocer los parámetros de configuración de red de un equipo. 4 Describir los diferentes servicios y funciones disponibles en el sistema operativo. 4 Utilizar las herramientas de instalación y administración de servicios que dispone el sistema operativo. SERVICIOS EN RED © RA-MA Actualmente ha cambiado mucho la visión que los usuarios tienen de Internet, sobre todo porque se han desarrollado nuevos servicios que facilitan y mejoran su uso, permitiendo un acceso a la información mucho más eficiente. Figura 1.1. Estructura de ARPANET en abril de 1971. Los ordenadores conectados están representados por elipses, mientras que los cuadrados etiquetados “IMP” representan los dispositivos que se utilizaban para unir los diferentes enlaces de cableado. La expansión de Internet ha estado ligada al desarrollo de los ordenadores y los sistemas operativos. En los inicios de ARPANET e Internet, los ordenadores eran mucho más simples, pero estaban menos adaptados a la forma en la que las personas manejan la información. En estos inicios, los ordenadores se manipulaban a través de la interfaz de línea de órdenes, que se basa en el modelo de orden y respuesta. En este modelo, el usuario escribe una orden o comando, pulsa la tecla ENTER y espera a que el ordenador le conteste mostrando un mensaje en la pantalla o de alguna forma. Figura 1.2. Terminal de órdenes de Mac OS X. Este sistema de interacción con los usuarios ha sido tradicionalmente el método más empleado para trabajar con ordenadores. 18 © RA-MA 1 n Introducción a los servicios de red El método de interacción por línea de órdenes es muy sencillo desde el punto de vista del funcionamiento del ordenador, pero tiene el inconveniente fundamental de que requiere más entrenamiento y aprendizaje por parte de los usuarios, que tienen que aprenderse de memoria las órdenes y las opciones que necesitan. Por ejemplo, un usuario que quiera mostrar la ubicación donde se encuentran todos los archivos cuyo nombre contenga “for”, tiene que escribir la siguiente orden en la interfaz de órdenes de Linux: find / -name *for* -type f -print En los inicios de Internet, los servicios disponibles y la forma de acceder a ellos también estuvo relacionada con la línea de órdenes. Por ejemplo, para acceder a los servicios de búsqueda de información Gopher, podemos seguir los pasos que se muestran en la figura 1.3. Figura 1.3. Ejemplo de obtención de información a través del servicio Gopher. Aquí se utiliza la orden telnet para conectar con el servidor remoto. Una vez establecida la conexión, se puede buscar la información que se necesite. Figura 1.4. Cliente de correo mail en línea de órdenes. Cuando se ejecuta este programa, se muestra una lista con los mensajes de correo recibidos y se espera a que el usuario introduzca una orden (en el ejemplo, se introduce la orden “t 1” para mostrar el mensaje número 1. 19 SERVICIOS EN RED © RA-MA Podemos decir que se ha producido un gran avance gracias al desarrollo de los sistemas de interacción gráfica del usuario, que permiten mostrar y manipular la información de una forma más visual e intuitiva. Estos sistemas se basan en el uso de elementos visuales como ventanas, iconos, menús, botones, etc., además de dispositivos de interacción como el ratón, las pantallas táctiles, etc. Gracias a estos sistemas de interacción, podemos acceder a la información disponible en Internet de una forma más intuitiva, como es a través de un navegador de hipertexto. Figura 1.5. Ventana principal de Mozilla Firefox. Con este programa se puede acceder a la información disponible en Internet de una forma más visual e intuitiva. Internet es una red que está enfocada al intercambio de información entre usuarios y equipos. Actualmente, la información disponible en los distintos ordenadores y servidores de Internet es enorme: en 2006, la corporación EMC (véase la bibliografía recomendada) estimó en 161 mil millones de gigabytes, lo que equivale a 3 millones de veces la cantidad total de libros escritos en toda la historia de la humanidad. Es evidente que esta ingente cantidad de información debe estar convenientemente organizada y estructurada para que sea accesible. Gracias al uso de los navegadores y los buscadores de Internet, 20 © RA-MA 1 n Introducción a los servicios de red la información se encuentra mayoritariamente estructurada en páginas de hipertexto con enlaces, imágenes, vídeos, etc., en lo que se conoce como la World Wide Web (Tela de Araña Mundial). La gran cantidad de información disponible, unida a la inexistencia de una autoridad que controle esa información, son factores que determinan los problemas que muchos usuarios padecen actualmente cuando cierta información personal aparece publicada en Internet. Simplemente con acceder a un buscador y escribir el nombre completo de una persona, podemos encontrar mucha información publicada en boletines oficiales, prensa, etc. Hasta no hace mucho tiempo, resultaba complicado encontrar determinada información publicada en periódicos antiguos, pero ahora esto resulta muy sencillo porque toda la información se digitaliza para que esté disponible al público y los motores de búsqueda localizan la información de una forma muy rápida. Existen multitud de aplicaciones que los usuarios demandan para su trabajo y entretenimiento. En general, todas ellas se basan en transferencia de información, aunque se distinguen por su formato o los tipos de datos que manejan. Algunos de los servicios más importantes que incluye Internet son los siguientes: 4 4 4 4 Transferencia de archivos. Correo electrónico. Conexión remota a equipos. Acceso a información de hipertexto. 1.1 Estructura de las redes de comunicaciones Una red de comunicación o red de transmisión de datos es una estructura formada por determinados medios físicos (dispositivos reales) y lógicos (programas de transmisión y control) desarrollada para satisfacer las necesidades de comunicación de una determinada zona geográfica. Se trata, pues, de un soporte que permite la conexión de diversos equipos informáticos (o cualquier otro dispositivo electrónico) con el objetivo de suministrarles la posibilidad de que intercambien informaciones. La red de comunicación permite el intercambio de información entre un emisor y un receptor. La señal recibida por el receptor es la suma de la señal 21 SERVICIOS EN RED © RA-MA enviada por el emisor más una componente de ruido que se suma durante su circulación a través de la red. Por lo tanto, habrá que introducir mecanismos de detección y corrección de errores. En la mayoría de los casos, todos los errores producidos no pueden ser corregidos, pero sí la mayoría de ellos. El límite se sitúa teniendo en cuenta el máximo aceptable por el usuario y el coste de la instalación de la red. Hay que tener en cuenta que una línea de comunicación no es solamente un cable, sino que también entran en juego otros elementos, como el sistema de conmutación, que decide la ruta que va a seguir la información hasta su destino y el sistema de señalización, que controla las comunicaciones establecidas. Una red está orientada a la transmisión de la información entre determinadas zonas geográficas. Esta idea tan general se convierte en la práctica en muchos kilómetros de cableado conectados a centralitas y otros dispositivos, todo ello destinado a ofrecer un conjunto de servicios al usuario. Los servicios básicos que puede proporcionar una red de comunicación son los siguientes: 22 n Transmisión de voz: éste es el servicio básico que han ofrecido las redes de comunicación desde sus inicios. Aunque este libro se centra en las redes de ordenadores, muchas de ellas permiten la transmisión de voz. n Transmisión de datos: disponible en todas las redes. La información que se transmite puede ser de muchos tipos: bloques de reducido tamaño (mensajes de correo electrónico), datos esporádicos (órdenes para su ejecución remota, conexión con un servidor web, etc.), bloques de datos de gran tamaño (archivos transferidos), vídeo digital (que supone una gran cantidad de imágenes por segundo) y un largo etcétera. La tendencia actual conduce hacia la integración total de todos estos servicios en una sola red de comunicación, una cuestión que todavía no se ha conseguido debido a la capacidad de transmisión limitada. n Establecimiento de la llamada: el servicio de establecimiento de llamada es fundamental en la mayoría de las redes, no así en determinados servicios específicos, como el envío y recepción de mensajes SMS. n Tarificación: todas las redes públicas, a excepción de las privadas, disponen de este servicio que permite conocer el grado de utilización de los servicios de comunicación por parte del usuario. La facturación se puede llevar a cabo por tiempo de conexión, por cantidad de información transmitida, etc. © RA-MA 1 n Introducción a los servicios de red De todo lo anterior se deduce que un sistema de comunicación se diseña con el propósito de ofrecer un conjunto limitado de servicios. En la práctica se ha comprobado que las redes de comunicación diseñadas para soportar una gran cantidad de servicios diferentes suelen ser costosas de instalar y no reciben la acogida esperada por los usuarios. La gran variedad de servicios ofrecidos por las redes de comunicación ha implicado que hasta la fecha existan diferentes tipos funcionando a lo largo del planeta. En este apartado veremos algunas de las redes de transmisión de datos más importantes y los servicios ofrecidos por ellas. Aunque tradicionalmente las redes se diseñaban para cubrir unas necesidades específicas, la tendencia actual se dirige a la integración de diferentes tipos de servicios en una misma red de comunicación, aunque todavía falta cubrir un largo camino. 1.1.1Red Telefónica Conmutada (RTC) La Red Telefónica Conmutada (RTC) está destinada a la transmisión de voz a través de corriente eléctrica que circula por un hilo conductor paralelo. Desde su invención en 1876 ha crecido hasta llegar a cientos de millones de abonados en todo el mundo. Inicialmente se trataba de una red conmutada manualmente por operadora, que se encargaba de establecer la conexión entre los diferentes abonados. Más adelante, cuando el número de usuarios desbordó este sistema, se concibió la idea de dotar a cada abonado de un número personal que permitiera la distinción del resto, además de la implantación de centralitas automáticas, capaces de establecer la conexión entre dos abonados sabiendo sus direcciones numéricas. El principal servicio ofrecido por la red telefónica conmutada es la transmisión de voz en tiempo real, además de la tarificación por pasos, aunque hoy en día se ofrece una cantidad de servicios al abonado bastante importante (llamada en espera, múltiples números de un abonado, conferencia a tres, marcación abreviada, desvío de llamadas, etc.). La transmisión de la información se realiza utilizando una señal de carácter analógico que representa la voz humana y diferentes tonos para indicar a la centralita el abonado con el que se desea hablar. Esta red tiene una capacidad de transmisión muy baja y los cables suelen ser de mala calidad, ya que resulta más que suficiente para la transmisión de voz. Cuando se desea transmitir datos a través de un ordenador, entonces se deben emplear mecanismos especiales que consigan aumentar la capacidad de la red hasta unos valores razonables. Sin embargo, nunca llega a conseguir una velocidad de transmisión elevada, lo que hace que hoy en día se utilice cada vez menos en comunicaciones informáticas. 23 SERVICIOS EN RED © RA-MA 1.1.2Red Digital de Servicios Integrados El estándar RDSI (Red Digital de Servicios Integrados) o IDSN (Integrated Services Digital Network) surgió en 1984 como una solución a las necesidades de comunicación modernas. RDSI ofrece todo tipo de servicios: transmisión de voz, transmisión de datos, transmisión de imagen y sonido en tiempo real, etc. La red RDSI dispone de su propio cableado, por lo que no puede funcionar sobre las redes telefónicas estándar (RTC). Además, esta red dispone de servicios a velocidades y capacidades diferentes, dependiendo del contrato que se realice. Cuando un usuario desea conectar su ordenador a la RDSI, debe instalar en éste un adaptador específico. Algunos de estos adaptadores incorporan incluso un módem analógico que garantiza la compatibilidad con el sistema telefónico antiguo (por si no queremos deshacernos de nuestro viejo teléfono). Puesto que RDSI va a transmitir diferentes tipos de información, el comité encargado de definir esta red decidió establecer un mecanismo de funcionamiento que permitiera a los usuarios contratar diferentes velocidades y capacidades de transmisión según sus necesidades; a un mayor coste, se puede conseguir una velocidad de transmisión mayor. Por ejemplo, un usuario particular preferirá contratar un servicio básico que le permita una velocidad considerable a un coste inferior; en una empresa, donde existe gran cantidad de dispositivos de comunicación y se espera un caudal mayor, se pueden contratar más canales para conseguir mayor capacidad, aunque con un coste más elevado. 1.1.3ATM ATM (Asyncronous Transfer Mode o Modo de Transferencia Asíncrono) es una nueva tecnología de transmisión que permite la implementación de servicios que requieran una gran velocidad de transmisión. Aunque está pensada para funcionar sobre cableado de fibra óptica, en realidad lo puede hacer sobre cualquier red (incluso la red telefónica conmutada). Esta nueva tecnología, todavía en desarrollo, permitirá a los abonados la difusión de películas, la videoconferencia de alta calidad, además de todos los tipos de transferencia de información que se utilizan hoy en día. Actualmente, el funcionamiento experimental de ATM se realiza sobre redes de tamaño reducido. Esto es debido a que la instalación de nuevas líneas y centralitas supone la realización de inversiones muy elevadas. Por esta razón, su uso se ha visto reducido con respecto a otras tecnologías como DSL. 24 © RA-MA 1 n Introducción a los servicios de red 1.1.4Línea digital de abonado Las redes DSL (Digital Subscriber Line o Línea Digital de Abonado) están basadas en la idea de utilizar la red telefónica básica (RTC) para transmitir información a alta velocidad. Puesto que hoy en día la mayoría de la población dispone en sus casas de una toma telefónica de dos hilos, se plantea utilizar toda esa red sin necesidad de instalar otra nueva (lo que permite a las compañías telefónicas obtener beneficios sin tener que realizar grandes inversiones en nuevas instalaciones y cableado). El problema que se plantea consiste en utilizar una red telefónica de baja calidad para transmitir datos a alta velocidad. La solución de las redes DSL consiste en utilizar circuitos integrados ASP (Advanced Signal Processor o Procesador de Señales Avanzado) para eliminar electrónicamente todas las interferencias producidas en la comunicación. Estos procesadores se instalan por pares para cada línea, uno en la centralita local y otro en el domicilio del abonado. Las redes DSL deben verse como una solución de compromiso, que se instala en los hogares de forma rápida, más que como una solución a largo plazo. Hoy en día ya se ha implantado por muchas compañías de comunicaciones, y la mayoría de los usuarios la utilizan como acceso rápido a Internet. Las líneas ADSL (Asymetric Digital Subscriber Line o Línea Digital Asimétrica de Abonado) son un tipo de red DSL en el que, desde el punto de vista del usuario, la velocidad de transmisión de la información es menor a la velocidad de recepción. Esto significa que la línea no funciona a la misma velocidad de transmisión en los dos sentidos, lo que hay que tener muy en cuenta cuando los usuarios la utilizan para dar servicio a usuarios remotos. 1.1.5Redes de cable Muchas empresas de telecomunicaciones están comenzando a instalar redes de comunicaciones nuevas con el propósito de cubrir las nuevas necesidades de los usuarios. Estas redes suelen localizarse en grandes ciudades y salvo rara excepción, no suelen abarcar zonas geográficas extensas debido a los elevados costes de instalación que esto supone. La organización del cableado de estas redes suele ser bastante heterogénea, aunque la mayoría posee una estructura parecida a la red telefónica, con enlaces 25 SERVICIOS EN RED © RA-MA de gran capacidad entre las centralitas de conmutación (habitualmente fibra óptica) y enlaces de cable coaxial entre las centralitas locales y los abonados. La utilización del cable coaxial para los enlaces de los abonados permite reducir los costes de instalación en gran medida, ya que resulta mucho más complejo instalar el cableado de fibra óptica en lugares donde son necesarias muchas curvaturas. En estas distancias, el cable coaxial suele ser suficiente para soportar las velocidades de transmisión demandadas. Gracias a la utilización de las redes de cable coaxial con troncales de fibra óptica, es posible transmitir voz, datos e imagen de televisión o vídeo bajo demanda, todo de forma digital. 1.1.6Frame Relay La red Frame Relay, que significa retransmisión de trama, ha sido diseñada para comunicar amplias zonas geográficas. Transmite datos a alta velocidad y los usuarios la contratan mediante una tarifa plana de bajo coste. El estándar de Frame Relay surgió como respuesta a la necesidad de determinados usuarios y empresas que solicitaban una red de transmisión de datos con una capacidad y velocidad de transmisión superiores. Se diseñó para sustituir a otras redes, como X.25 (utilizada para transmitir información fiable sobre líneas no fiables, como los cajeros automáticos de las entidades bancarias). La velocidad de Frame Relay es superior a X.25 porque el protocolo no realiza detección ni corrección de errores en los saltos intermedios; este control es responsabilidad solamente de los dos extremos que se comunican. Frame Relay está pensada para funcionar en líneas telefónicas más modernas, que disponen de una mayor calidad y unos índices de error menores. Al igual que otras redes de comunicación públicas, la contratación de un servicio Frame Relay depende de la capacidad de transmisión que desee el usuario. Sin embargo, en este último se establece un valor de velocidad media de transmisión, lo que otorga al usuario una capacidad mínima de funcionamiento de esa línea. 1.1.7Redes locales Las redes locales son aquéllas que no sobrepasan en extensión a una habitación o un edificio. Están diseñadas para permitir la comunicación entre 26 © RA-MA 1 n Introducción a los servicios de red los distintos sistemas informáticos que están conectados a ellas. Estas redes facilitan el trabajo de los empleados de las empresas donde están instaladas, ya que permiten el intercambio de información, el manejo de grandes bases de datos y una forma de compartir recursos limitados, como por ejemplo impresoras. Hoy en día, las redes locales de tipo Ethernet son las más utilizadas por su reducido coste, capacidad de transmisión aceptable y facilidad en la instalación y el mantenimiento. También se están extendiendo actualmente las redes locales inalámbricas o Wireless (sin cables), que permiten la comunicación entre los equipos sin necesidad de realizar grandes inversiones en instalaciones de cableado. 1.1.8Comunicaciones inalámbricas La comunicación inalámbrica (que no necesita de ningún tendido de cable entre el emisor y el receptor) resulta indispensable para aquellos usuarios móviles que necesitan estar continuamente “en línea”. También es de mucha utilidad cuando resulta muy costoso tender hilos de comunicación en zonas geográficas de difícil acceso. Las comunicaciones inalámbricas consisten en el envío y recepción de electrones (o fotones) que circulan por el espacio libre (el aire). Estos electrones viajan en forma de ondas electromagnéticas que se propagan del mismo modo que las ondas del agua en un estanque. La longitud de onda de esas señales se define como la distancia que existe entre cada onda y, dependiendo de ella, la señal se puede comportar de una forma u otra. Esto hace que la comunicación tenga unas propiedades bien definidas (capacidad y velocidad de transmisión, inmunidad a interferencias, posibilidad de atravesar objetos sólidos, etc.). En comunicaciones inalámbricas se utilizan los siguientes tipos de ondas electromagnéticas: ondas de radio, microondas y ondas infrarrojas. Actualmente existen multitud de redes de comunicaciones que utilizan el aire como medio para transmitir sus señales. Entre estas redes, podemos destacar la telefonía celular, el satélite o las redes locales inalámbricas. 27 SERVICIOS EN RED © RA-MA Figura 1.6. Estructura típica de una red local. Incluso en redes pequeñas y medianas, es posible encontrar estructuras heterogéneas donde las comunicaciones se pueden realizar a través de cable o de forma inalámbrica. 1.1.9Internet Internet es una gran red mundial de ordenadores formada por multitud de pequeñas redes y de ordenadores individuales conectados unos con otros de forma que sea posible el intercambio de información entre ellos. El éxito de Internet se basa en que es abierta, es decir, puede conectar cualquier tipo de red independientemente de su tecnología y sin necesidad de realizar cambios en ella. Las redes que forman Internet pueden dividirse en una jerarquía de tres clases: 28 n Redes de tránsito o transporte internacional: garantizan la interconexión de las diferentes redes de proveedores de la conexión. Están formadas por enlaces de fibra óptica de gran capacidad y nodos intermedios que establecen las rutas de circulación de la información. n Redes regionales y de proveedores de conexión: garantizan la conectividad entre el usuario final y las redes de tránsito. Están formadas por redes públicas cuya titularidad recae en compañías de telecomunicaciones y redes privadas instaladas por empresas u organismos de investigación. n Redes de usuario final: van desde una simple conexión de un ordenador hasta redes corporativas privadas de una empresa (redes locales). © RA-MA 1 n Introducción a los servicios de red Figura 1.7. Estructura básica de Internet. Se puede apreciar la red de tránsito principal (marcada por una elipse) y los proveedores de acceso (indicados con un rectángulo). Los enlaces que forman la red de tránsito se llaman nodos o IMPs (Interface Message Processor o Procesador de Interfaz de Mensajes) y se dedican a dirigir los paquetes de información que circulan por los enlaces. Por su parte, los enlaces entre los usuarios finales y los proveedores de acceso pueden realizarse utilizando redes de comunicación como RTC, ADSL, RDSI, etc. Los inicios de Internet se remontan a la década de los 60, cuando en plena guerra fría el departamento de defensa norteamericano quería desarrollar una red de comunicación militar que fuera capaz de funcionar incluso durante una guerra nuclear. El problema se planteaba debido a la gran vulnerabilidad de las redes de comunicación telefónica existentes, ya que la rotura de un enlace de larga distancia tenía consecuencias muy graves. Este proyecto se asignó a una sección del departamento denominada ARPA (Advanced Research Projects Agency o Agencia de Proyectos de Investigación Avanzados), que en aquellos momentos contaba con un presupuesto muy reducido. Por esta razón, se concedieron subvenciones a algunas universidades y centros de investigación para que trabajaran sobre este proyecto. El diseño original de Internet estaba basado en la conmutación de paquetes, un sistema que consiste en dividir los mensajes a transmitir para que lleguen libremente del origen al destino. Estudios anteriores demostraron que este método de transmisión de la información resultaba mucho más eficaz que otros sistemas, como la conmutación de circuitos (método utilizado en la red telefónica que consiste en establecer de antemano una ruta por la que circula toda la información). La conmutación de paquetes es un método que también ofrece tolerancia ante fallos de la red, ya que aunque se pierda algún paquete, 29 SERVICIOS EN RED © RA-MA no se pierde el mensaje completo. Esta característica fue decisiva en la selección de este sistema de transmisión, ya que coincidía con los requerimientos de desarrollar una red preparada a los ataques externos. Una vez realizado el diseño de Internet, se comenzó el montaje de la red para el año 1968. Para ello, se utilizaron computadoras DDP-316 con 24 Kb de memoria y sin disco duro para los nodos intermedios y la propia red telefónica como cableado, en régimen de alquiler a las compañías telefónicas. Para el año 1969, la red estaba ya plenamente operativa y conectaba solamente cuatro ordenadores distantes entre sí. (véase la figura 1.1 donde se muestra la estructura que tenía ARPANET en abril de 1971). Gracias a los estudiantes graduados de las universidades estadounidenses, la red comenzó a crecer con la conexión de nuevos ordenadores y cableado, pasando a denominarse ARPANET. En el año 1971 se completó la especificación del protocolo de control de la red NCP (Network Control Protocol o Protocolo de Control de Red) y para el año 1972 ya abarcaba todo Estados Unidos y tenía interconectados equipos muy diferentes (grandes supercomputadores, ordenadores personales, etc.). En esa época se puso en marcha una aplicación estrella de la red: el correo electrónico. Así mismo, comenzó a conectarse a otros tipos de redes, como los satélites, lo que permitió investigar en los mecanismos para la interconexión de redes distintas. Todo este desarrollo se realizaba utilizando el nuevo sistema operativo en expansión denominado Unix y desarrollado por la universidad de Berkeley. Este sistema operativo pasaría años después a manos privadas (AT&T), cuando ya se había convertido en un estándar dentro de la informática profesional. A finales de la década de los 70, la NSF (National Science Foundation o Fundación Nacional de la Ciencia) de Estados Unidos comenzó el desarrollo de la red NSFNET, que utilizaba las mismas ideas de funcionamiento de ARPANET, pero permitía su uso de forma libre por cualquier universidad y organismo de investigación. NSFNET se conectó a ARPANET y comenzó a crecer tan rápido que se sobrecargó desde el principio. Gracias a esta unión, ARPANET siguió desarrollándose con fondos de la NFS. Paralelamente, también se desarrollaron otras redes de comunicaciones, como la NFENet del Departamento de Energía Norteamericano, SPAN de la NASA, USENET de AT&T (para sistemas Unix), etc. Debido al crecimiento acelerado de ARPANET, fue necesario establecer nuevos mecanismos de control de la red, por lo que el protocolo NCP demostró ser inadecuado. El 1 de enero 1983 se puso en marcha una nueva versión del protocolo NCP, denominado TCP (Transmission Control Protocol o Protocolo de Control de la Transmisión), una transición que se planificó con varios años 30 © RA-MA 1 n Introducción a los servicios de red de antelación ya que requería que todos los equipos de la red se convirtieran simultáneamente. Se distribuyeron insignias para la ocasión donde se podía leer “Yo sobreviví a la transición TCP”. En ese momento, ARPANET ya era completamente estable, así que se dividió en dos partes: por un lado permaneció una porción que siguió denominándose ARPANET (conectada con NSFNET) y por otro lado comenzó a funcionar MILNET con 160 nodos (de los cuales 50 no estaban en Estados Unidos). En ese mismo año ya era oficial el paquete de programas de conexión a ARPANET, denominado TCP/IP (Transmission Control Protocol/Internet Protocol o Protocolo de Control de la Transmisión/ Protocolo de Interred). Para 1990, la red ya era conocida como Internet y había rebasado el millón de equipos conectados y su tamaño no dejaba de duplicarse cada año. Los protocolos TCP/IP ya habían sustituido o marginado a la mayoría de protocolos y estándares de las grandes redes de ordenadores que existían hasta el momento. Por su parte, la red MILNET siguió desarrolándose a la sombra de la opinión pública y hoy en día muchos investigadores consideran que se trata de una red de espionaje en pleno funcionamiento. Internet siguió manteniendo la misma estructura organizativa de ARPANET que fue heredada desde los tiempos en los que dependía de ARPA. Ésta se disponía de forma jerárquica bajo el IAB (Internet Activities Board o Comité de Actividades de Internet). Este comité tiene como finalidad principal la de elaborar los documentos RFC (Request For Comments o Petición de Comentarios) que contienen los protocolos y especificaciones de Internet y que hoy en día superan los dos mil. La publicación abierta y la libre distribución de los RFC ha facilitado enormemente el desarrollo y la expansión de Internet. El IAB se distribuía en diferentes grupos de trabajo, uno de los más importantes ha sido el IETF (Internet Engineering Task Force o Equipo de Trabajo de Ingeniería de Internet). Internet también ha calado en el mundo empresarial y comercial, de forma que los fabricantes han incorporado esta tecnología a sus productos y a la vez la han utilizado para ampliar sus mercados. En 1988 nació el Interop Trade Show, una feria dedicada a que los fabricantes que incluían la tecnología TCP/ IP pudieran dar a conocer sus productos. El 24 de octubre de 1995 se acordó definir de forma oficial el término Internet: Internet hace referencia a un sistema global de información que (1) está relacionado lógicamente por un único espacio de direcciones global basado en el protocolo de Internet (IP) o en sus extensiones, (2) es capaz de soportar comunicaciones usando el conjunto de protocolos TCP/IP o sus extensiones 31 SERVICIOS EN RED © RA-MA u otros protocolos compatibles con IP, y (3) emplea, provee, o hace accesible, privada o públicamente, servicios de alto nivel en capas de comunicaciones y otras infraestructuras relacionadas aquí descritas. Internet tal y como lo conocemos hoy en día seguirá evolucionando y adaptándose a las nuevas tecnologías y a los nuevos servicios y necesidades demandados por los usuarios. Se espera que en el futuro pueda incorporar nuevos servicios como la telefonía o la televisión. 1.2 Los servicios de red La gran mayoría de los servicios ofrecidos por una red de comunicación de ordenadores se basan en el funcionamiento en modo cliente-servidor. Éste consiste en que el servicio podrá ser proporcionado si existe en la red, al menos, un equipo que funcione como servidor y que se encargue de atender las peticiones recibidas. Por su parte, el resto de equipos de la red se comportarán como clientes, enviando las peticiones a los servidores para que las atiendan. En una red de comunicación, el servicio más importante que debe ofrecerse es el intercambio de información entre equipos. Sin embargo, para que este servicio pueda funcionar con todas las garantías, puede ser necesario que tengan que existir otros servicios complementarios que aporten las funciones necesarias. Este capítulo está dedicado a explicar algunos de los servicios básicos que pueden ofrecer los equipos conectados en red, unos servicios que no están orientados a realizar esta tarea fundamental de intercambio de información entre equipos, pero que sin embargo ofrecen su apoyo para que otros servicios puedan funcionar correctamente. 1.2.1Servicios de alto nivel Al grupo de servicios de alto nivel pertenecen aquéllos que demandan directamente los usuarios. En una red de telefonía, el servicio fundamental para los usuarios es la transmisión de voz o la transmisión de mensajes de texto. En una red de ordenadores, los usuarios quieren intercambiar archivos, mensajes, vídeos, etc. 32 © RA-MA 1 n Introducción a los servicios de red Los servicios de alto nivel más importantes que ofrece actualmente Internet son: 4 4 4 4 Transferencia de archivos entre equipos. Correo electrónico y mensajería instantánea. Acceso remoto a equipos. Consulta de información en hipertexto. 1.2.1.1Transferencia de archivos La manipulación de archivos dentro de una red de ordenadores es una de las operaciones más comunes e importantes que se suelen llevar a cabo por los usuarios. Esa manipulación de archivos puede ser la transferencia de una máquina a otra, la lectura, la escritura, el borrado, etc. Para que alguna de esas operaciones se pueda llevar a cabo, el usuario de la red debe estar perfectamente identificado (por su nombre y contraseña) y disponer de los derechos necesarios. En la manipulación de archivos en red intervienen tres elementos fundamentales: n Programa de manipulación de archivos: es aquél que le permite al usuario realizar la operación u operaciones concretas sobre los archivos. Para funcionar correctamente, debe utilizar los servicios proporcionados por el nivel de transporte de la red. n Sistema de archivos local: es aquél que funciona sobre el ordenador donde se encuentra trabajando el usuario. Deberá ser capaz de interpretar el contenido de los archivos, ya que suele ser el receptor de ellos. n Sistema de archivos remoto: es aquél donde se encuentran todos los archivos a los que los usuarios desean acceder. Por lo tanto, es el encargado de autentificar los usuarios y comprobar los permisos. En el caso de la operación de transferencia de archivos, suelen intervenir dos ordenadores que actúan de cliente (normalmente la estación de trabajo donde está sentado el usuario) y servidor (que gestiona la ingente cantidad de archivos). 33 SERVICIOS EN RED © RA-MA Figura 1.8. Ventana principal de FileZilla. Este programa cliente divide la ventana en dos partes: en la parte izquierda se muestran los archivos y carpetas del equipo local, mientras que en la parte derecha se muestran los del equipo remoto al que se ha conectado. Con esta herramienta se simplifica mucho el trabajo del usuario, ya que las operaciones con archivos se pueden realizar con el ratón arrastrando y soltando de un lugar a otro. La transferencia de archivos es uno de los servicios de transmisión de datos más comunes y utilizados en una red. Ante la ausencia de otros servicios más elaborados, algunas redes de comunicación han utilizado la transferencia de archivos adaptada a las necesidades concretas de cada caso. Por ejemplo, en ausencia de un sistema de envío de mensajes o correo electrónico, los usuarios pueden utilizar el envío de archivos que contienen los mensajes y los nombres de los destinatarios. Estos mensajes se pueden guardar en carpetas de los equipos locales de una forma organizada. El protocolo FTP (File Transfer Protocol o Protocolo de Transferencia de Ficheros) permite la transferencia de archivos entre ordenadores, y fue introducido en la arquitectura de redes TCP/IP. FTP fue utilizado inicialmente en la red ARPANET antes de que fuera operacional TCP/IP y ha evolucionado hasta el estándar que conocemos hoy en día. Para una descripción detallada de los protocolos de transferencia de archivos puede consultar el capítulo 8 de este libro. 34 © RA-MA 1 n Introducción a los servicios de red 1.2.1.2Correo electrónico y mensajería instantánea Por su parte, el servicio de correo electrónico (e-mail) consiste en el envío y recepción de mensajes de texto (además de un conjunto de archivos adjuntos) desde un usuario origen a otro destino, sin necesidad de que el destinatario se encuentre conectado y disponible para su recepción. El servicio de correo electrónico se verá en profundidad en el capítulo 5. Aunque el servicio de correo electrónico se puede diseñar como un sistema de transferencia de archivos, este último carece de algunas características que lo diferencian del anterior: n Es posible transmitir un mensaje a un grupo de usuarios a la vez. n La información de un mensaje está bastante estructurada, y se incluye el nombre y dirección del emisor y el destinatario y la fecha y hora de envío. Las direcciones suelen tener el formato siguiente: nombre_usuario@ nombre_equipo.dominio. n Es más fácil de utilizar por los usuarios, ya que todo el programa de envío de correo está integrado en una sola aplicación. Los servicios de mensajería instantánea se diferencian del correo electrónico en que, para que los usuarios puedan recibir los mensajes, éstos deben estar conectados y “en línea”. Existen muchos sistemas de mensajería instantánea que funcionan actualmente en Internet, como IRC, Google Talk u otros servicios de Chat ofrecidos a través de páginas web dinámicas. En los capítulos 6 y 7 de este libro se explica el funcionamiento del servicio de correo electrónico, mientras que IRC se explica en el capítulo 10. 1.2.1.3Acceso remoto a equipos El acceso vía terminal remoto a un ordenador ha sido tradicionalmente el modo más frecuente de comunicaciones en red. El programa emulador de terminal envía las órdenes que escribe el usuario en el terminal (equipo formado por pantalla, teclado y dispositivo de comunicación) para que se ejecuten en el servidor, y este último devuelve los resultados para que aparezcan en la pantalla de la estación del usuario. Normalmente, el servidor suele funcionar bajo Unix/Linux y las estaciones de los usuarios pueden carecer de capacidad de proceso o tener cualquier otro sistema operativo más ligero. 35 SERVICIOS EN RED © RA-MA La comunicación mediante emulación de terminal es una técnica bastante pobre de transmisión de datos en red, ya que no permite la transferencia de archivos entre el servidor y el cliente. Uno de los protocolos de nivel de aplicación de uso más extendido de TCP/IP es Telnet (Telematics Network). Se trata de un protocolo simple de terminal remoto que permite establecer una conexión entre un usuario y un servidor. El usuario realiza pulsaciones sobre el teclado del terminal que son enviadas al servidor por la red, procesadas por éste; tras lo cual, se realiza el envío de nuevo al usuario del resultado de la ejecución de las órdenes, que aparece sobre la pantalla del terminal. Una vez que se ha establecido la conexión Telnet, el usuario ejecutará las órdenes y tendrá la sensación de que se encuentra delante del equipo remoto (servidor). Por esta razón, las órdenes que reconoce el protocolo Telnet son las mismas que se manejan en el sistema operativo del servidor, normalmente órdenes usadas en los sistemas Unix/Linux (aunque las nuevas versiones de Microsoft Windows también incluyen sus propios juegos de órdenes). Los servicios de terminal remoto se explican en el capítulo 9. Figura 1.9. Conexión de escritorio remoto a Windows Server 2008. Con esta herramienta, los administradores no tienen por qué trabajar delante de un equipo, pueden hacerlo desde otro. 36 © RA-MA 1 n Introducción a los servicios de red Además del protocolo Telnet, también existen otros protocolos para el acceso remoto a un equipo, como SSH (Secure Shell o Interfaz Segura), que funciona de la misma forma pero que también ofrece mecanismos avanzados de seguridad. Otros protocolos de terminal remoto permiten también la conexión a través del entorno gráfico, dando al usuario la sensación de que está trabajando directamente con el equipo remoto. 1.2.1.4 Páginas de hipertexto La WWW (World Wide Web o Telaraña Mundial) se utiliza para acceder a información distribuida a través de todos los servidores de Internet. Dada su facilidad de uso, se ha convertido en la principal herramienta de comunicación entre ordenadores conectados y mucha gente la confunde con la propia red Internet. El usuario accede a la WWW a través de documentos llamados páginas. Cada página puede contener texto o imágenes gráficas, además de enlaces a otras páginas distintas; a este formato de documento se le llama hipertexto o HTML (Hypertext Markup Language) y se explica en el apéndice A de este libro. Para poder ver correctamente estas páginas, se necesita un programa adecuado llamado visor o navegador. Los más conocidos actualmente son Mosaic, Netscape y Explorer. Si el usuario desea cambiar de una página a otra, solamente tiene que situar el puntero del ratón sobre algún enlace y pulsar con el botón izquierdo. A estos enlaces se les llama hipervínculos o hiperenlaces y están formados por texto o imagen resaltado. Figura 1.10. Ejemplo de página de hipertexto visible por un navegador. Estas páginas pueden contener enlaces a otras, texto, imágenes, sonidos, etc. El código que aparece en la parte inferior corresponde al lenguaje HTML. 37 SERVICIOS EN RED © RA-MA Cuando un cliente escribe una dirección de una página WWW o hace clic sobre un hipervínculo, el servidor correspondiente recibe una petición a través del protocolo TCP por el puerto 80 solicitando la página concreta. El protocolo que genera (en el lado del cliente) o recibe las respuestas (en el lado del servidor) se llama HTTP (HyperText Transfer Protocol o Protocolo de Transferencia de Hipertexto) y normalmente se usa para que un equipo servidor envíe páginas a un cliente, aunque la comunicación en sentido contrario también es posible (por ejemplo, cuando el cliente desea completar un formulario para enviar sus datos al servidor). Figura 1.11. Esquema de funcionamiento de HTTP. Un equipo cliente envía una petición de una página a un servidor web y este último se la envía para que el programa navegador la muestre. Una página de hipertexto contiene, además del texto escrito y las referencias a las imágenes, órdenes para establecer su formato. Estas órdenes de formato indican si el texto es de título, el tipo de fuente en el que debe ser mostrado, la posición dentro de la página, etc. Será el programa visor el encargado de reconocer estas órdenes para mostrar la página de una forma conveniente. Sin lugar a dudas, el servicio de transferencia de hipertexto es el más utilizado en la actualidad por los usuarios de Internet. Otros servicios, como la transferencia de archivos o el correo electrónico, se están adaptando a la WWW, de forma que es posible descargar un archivo, consultar el correo o publicar un mensaje en un foro desde una página de hipertexto. Esto ha sido posible gracias al desarrollo de lenguajes más potentes que permiten dinamizar la visualización de las páginas, lenguajes que no se limitan solamente a establecer el formato de un texto o el tamaño de una imagen. 38 © RA-MA 1 n Introducción a los servicios de red Además de las órdenes de hipertexto, los visores HTML son capaces de interpretar código escrito en otras versiones del lenguaje que extienden la funcionalidad del protocolo, como XML (que extiende el juego de órdenes de HTML), el lenguaje JavaScript (una versión del lenguaje Java), las applets escritas en código Java o el lenguaje PHP (orientado al acceso a bases de datos). Estos lenguajes incluyen gran cantidad de nuevas funciones en cuanto a visualización gráfica, acceso a bases de datos, manejo de archivos, etc. Todo lo relacionado con el servicio HTTP se explica en el capítulo 4 de este libro. 1.2.2Servicios de bajo nivel Para que una red de comunicación pueda ofrecer una serie de servicios de alto nivel a los usuarios, necesita de una compleja infraestructura que, en la mayoría de los casos, queda oculta. Esta infraestructura no solamente está formada por elementos tangibles como cableado o centralitas de conexión, sino que también incluye una serie de programas y servicios que realizan tareas más simples. Cuando un usuario utiliza la red de comunicación para copiar un archivo de un ordenador a otro o descargar una página de hipertexto, utiliza el servicio correspondiente de alto nivel, que estará disponible a través de alguna aplicación instalada en el equipo (como un explorador de archivos, un navegador, etc.). Esta operación que realiza el usuario requiere, a su vez, de la realización de otras operaciones más sencillas que tienen que ver con la forma en la que la red de comunicación subyacente transfiere los datos. Estas operaciones más sencillas pueden ser: la comprobación de que el otro equipo está listo, la selección de la mejor ruta que debe seguir la información hasta alcanzar el destino, la confirmación de que el otro equipo acepta la conexión, la división de la información en fragmentos más pequeños para ser enviados individualmente, la ordenación y fusión de los mensajes recibidos en el destino, la comprobación de errores, etc. Todas estas operaciones se realizan gracias a la existencia de servicios de bajo nivel. Es muy importante comprender que los servicios de bajo nivel dependen de la red de comunicación sobre la que funcionan. Por ejemplo, para copiar un archivo a través de una red local, los servicios de bajo nivel deben obtener la dirección del equipo destinatario, pero no necesitan seleccionar la mejor ruta (porque sólo existe una). Sin embargo, para enviar un archivo a través de una conexión telefónica, el equipo debe realizar primero una llamada de teléfono al número del proveedor de acceso, establecer una conexión y seleccionar la mejor ruta hasta el destino. 39 SERVICIOS EN RED © RA-MA Cuando un equipo accede a Internet también necesita utilizar multitud de servicios de bajo nivel. En muchos casos, el número de servicios disponibles a bajo nivel es mucho mayor si entre los dos equipos que se comunican existen muchas redes distintas interconectadas. Hay que recordar que la característica fundamental que define a Internet es que está formada por multitud de redes más pequeñas e interconectadas, cada una de las cuales funciona en base a una tecnología diferente. Entre los servicios de bajo nivel que podemos encontrar no solamente están aquéllos que realizan el envío o recepción de la información, sino también aquéllos que están encargados de realizar las correspondientes conversiones y adaptaciones a los diferentes formatos de información enviados. No es propósito de este libro explicar con detalle determinados servicios de bajo nivel que utiliza Internet porque están muy relacionados con la tecnología de la red de comunicación sobre la que funcionan. Sin embargo, existen determinados servicios de bajo nivel que interaccionan directamente con los servicios de alto nivel, por lo que resulta importante conocerlos ya que determinan cómo se van a comportar esos servicios de alto nivel. Por esta razón, también se puede considerar que estos servicios se encuentran en un nivel intermedio o incluso a alto nivel. En Internet se utilizan dos servicios muy importantes que dan apoyo a otros servicios de alto nivel: DHCP (Dynamic Host Configuration Protocol o Protocolo de Configuración Dinámica de Equipos) y DNS (Domain Name System o Sistema de Nombres de Dominio). DHCP se usa para facilitar la configuración automática de los equipos, de forma que los usuarios poco experimentados no tengan que configurar manualmente sus equipos. Por su parte, DNS se utiliza para ocultar el esquema de direcciones IP que usa Internet y así los usuarios puedan trabajar de una forma más cómoda con nombres de equipos. En los capítulos 2 y 3 de este libro se explica con más detalle el funcionamiento de estos servicios. 1.3 Protocolos en redes de comunicaciones Para que un usuario pueda realizar una conexión con Internet, primero necesita instalar en su equipo una serie de programas. Dichos programas contienen todos los pasos que se deben seguir para establecer las conexiones, realizar transferencia de información, controlar los errores, etc. Este conjunto 40 © RA-MA 1 n Introducción a los servicios de red de normas resulta muy importante ya que sin ellos no estarán disponibles los servicios necesarios a bajo y alto nivel. En el caso que nos ocupa de conexión a Internet, el paquete que es necesario instalar se denomina TCP/ IP (Transmission Control Protocol/Internet Protocol o Protocolo de Control de la Transmisión/Protocolo de Interred) y su especificación se encuentra perfectamente definida en documentos oficiales denominados RFC (Request for Comments o Petición de Comentarios), definidos desde el año 1983 por el IAB (Internet Activities Board o Comité de Arquitectura de Internet). 1.3.1Características Las reglas que definen el protocolo TCP/IP son independientes del funcionamiento del ordenador y del sistema operativo que lleve instalado (Microsoft Windows, Linux, OS/2, etc.). Por esta razón, cualquier ordenador se puede comunicar con otro a través de la red Internet independientemente de si son compatibles o no. Ésta es una de las características que más ha contribuido al éxito y expansión de Internet. Actualmente existen versiones del protocolo TCP/IP para la mayoría de ordenadores y sistemas operativos. Todas esas versiones deben cumplir con las especificaciones de los documentos RFC (para así asegurar que la comunicación a través de la red se va a realizar correctamente) y también deben adaptarse al sistema operativo sobre el que van a funcionar, ya que también deben interaccionar con él. Por lo tanto, TCP/IP debe adaptarse a dos sistemas para los que funciona como una especie de puente adaptador: por un lado la red de comunicación y por otro el sistema operativo y la máquina sobre la que funciona. En el caso de los sistemas operativos como Unix o Linux, los protocolos TCP/IP están perfectamente integrados fundamentalmente por cuestiones históricas. Hay que tener en cuenta que la red ARPANET se diseñó inicialmente para comunicar máquinas Unix. Para otros sistemas como Microsoft Windows, la adaptación a Internet se realizó de forma distinta. Hay que tener en cuenta que Microsoft desarrolló inicialmente toda una serie de protocolos y normas que definen una red de comunicación (la Red Microsoft) totalmente incompatible con Internet. Por lo tanto, hubo que desarrollar nuevos paquetes que permitieran la compatibilidad. Hoy en día, las nuevas versiones de Microsoft Windows incluyen su propia versión de TCP/IP y muchos de los protocolos diseñados inicialmente para la Red Microsoft se han sustituido por otros para conseguir una integración completamente estable. 41 SERVICIOS EN RED © RA-MA Figura 1.12. Ejemplo de funcionamiento de los protocolos de Internet. TCP/IP funciona como un sistema que adapta la comunicación interna del ordenador, que resulta muy rápida y que está representada por el transporte terrestre, con la comunicación de largas distancias, representada por el transporte marítimo. 1.3.2 Parámetros de configuración Como se ha mencionado en el apartado anterior, para que un ordenador pueda acceder a Internet debe instalar el protocolo TCP/IP. Sin embargo, esto no es suficiente, ya que también es necesario configurar sus parámetros para que las comunicaciones discurran sin problemas. Algunos tipos de conexión a Internet resultan muy sencillos de configurar ya que los parámetros de TCP/IP se establecen de forma automática a través del protocolo DHCP (Dynamic Host Configuration Protocol o Protocolo de Configuración Dinámico de Equipo), cuya descripción aparece en el capítulo 3 apartado 3.2. Este tipo de configuración se realiza sobre todo en las conexiones con módem. El parámetro más importante de TCP/IP es la dirección IP, que permite diferenciar a unos equipos de otros en la red. Esta dirección cumple la misma función que el número de teléfono de un abonado, es decir, lo identifica de forma unívoca (ya que su número es único y no está asignado a ningún otro abonado). 42 © RA-MA 1 n Introducción a los servicios de red La dirección IP funciona exactamente igual, aunque su formato es distinto. En la versión 4 de IP, las direcciones están formadas por cuatro números en decimal de 0 a 255 separados por puntos; por ejemplo: 80.36.234.12. Otro parámetro a configurar que está asociado con la dirección IP es la máscara de red. Aunque no es propósito de este libro describir este concepto (se puede consultar en la bibliografía recomendada), diremos que se trata de un parámetro que indica en qué red se encuentra el equipo. La dirección IP se divide en dos partes: una parte que indica el número de red donde se encuentra el equipo y la otra que indica el número de equipo dentro de esa red. La máscara de red indica cuántos números se reservan para cada parte. En la tabla 1.1 se resumen las máscaras de red utilizadas para las divisiones más comunes. Tabla 1.1. Máscaras de red más comunes en IPv4 Dirección y máscara Número de red Número de equipo 80.36.234.12 255.0.0.0 80 36.234.12 10.245.132.65 255.255.0.0 10.245 132.65 122.76.211.89 255.255.255.0 122.76.211 89 Figura 1.13. Ventana de configuración de los parámetros TCP/IPv4 en Windows 7. Desde esta ventana se especifican los parámetros de configuración de la red, como la dirección IP, la máscara de red, etc. 43 SERVICIOS EN RED © RA-MA Además de la dirección y la máscara, el equipo también necesita saber dónde se encuentra la conexión con Internet, es decir, hacia dónde debe enviar los mensajes que van hacia esta red. A este parámetro se le denomina puerta de enlace, pasarela por defecto o default gateway. Su valor se establece con la dirección IP del dispositivo que conecta nuestro equipo con Internet (normalmente es la dirección del encaminador o el dispositivo propiedad del proveedor de acceso que conecta la red de comunicación de nuestro equipo con Internet). Hasta ahora se ha hablado de la configuración IPv4 del equipo, pero es posible que éste también necesite una configuración IPv6, en caso de que los usuarios necesiten acceder a los servicios que ofrece esta nueva versión del protocolo. IPv6 es una nueva versión que pretende sustituir paulatinamente a IPv4, sobre todo porque el enorme crecimiento de Internet ha hecho que el rango de direcciones que admite éste último se haya agotado. El protocolo IPv6 admite un rango de direcciones mucho mayor, pero tiene el inconveniente de que su formato es más complejo. Con IPv6 se pueden manejar miles de millones de direcciones, ya que utiliza un formato de 128 bits. Esto permite alrededor de 340 sextillones de direcciones, lo que posibilita que cada ordenador, teléfono móvil, agenda electrónica, etc., tenga su propia dirección IP. Las direcciones IPv6 se pueden representar de tres formas diferentes: 4 Por ocho números en hexadecimal de 16 bits, separados por dos puntos. 4 Igual que la anterior, pero suprimiendo todos los ceros consecutivos en la dirección y sustituyéndolos por “::”. Estos “::” solamente pueden aparecer una vez en la dirección. 4 Utilizando una notación mixta formada por una parte de dirección v6 (seis números hexadecimales de 16 bits separados por dos puntos) y otra de v4 (cuatro números decimales de ocho bits). Una dirección IPv6 también tiene varios campos: los primeros bits forman un prefijo, que indica el tipo de dirección (véase la tabla 1.2); los bits centrales especifican un número de red (que puede no existir) y los bits finales especifican un número de estación. 44 © RA-MA 1 n Introducción a los servicios de red Tabla 1.2. Tipos de prefijos en Ipv6 Prefijo Descripción 00 Dirección IPv4. 2o3 Dirección asignada por un proveedor de acceso a Internet. de FE80 a FEBF Direcciones privadas dentro del ámbito de la subred. de FEC0 a FEFF Direcciones privadas dentro del ámbito de la red (intranet). FF Dirección de multidifusión. En IPv6 también existen las máscaras de red y su función es idéntica a la versión anterior del protocolo. Por su parte, también se utilizan los prefijos, pero en este caso su representación es justamente la contraria a IPv4: un prefijo /50, por ejemplo, indica que los 50 últimos bits de la dirección se reservan para numerar estaciones. La razón de este cambio estriba en que ahora se utiliza gran cantidad de dígitos binarios para numerar redes y subredes, mientras que el número de estaciones es menor con respecto a ellas. ¡ EJEMPLO 1.1 Ejemplos de direcciones IP versión 6 pueden ser los siguientes: 43A0:512C:65:1FF:FD06:AA68:1:54B7 12E:0:0:0:768F:821:0:2286 es equivalente a 12E::768F:821:0:2286 65E:0:0:0:0:0:10A:192.168.0.18 es equivalente a 65E::10A:192.168.0.18 0:0:0:0:0:0:124.68.251.128 es equivalente a ::124.68.251.128 Para mantener actualmente la coexistencia entre IPv4 e IPv6, los equipos tienen instalados los dos protocolos a la vez, por lo que cada equipo debe tener asignado una dirección IPv4 y otra IPv6. Si el equipo se conecta con otro a través de IPv4, utilizará este protocolo en la comunicación, de igual forma que si se conecta con uno IPv6 lo hará siguiendo este protocolo. Este mecanismo permite la coexistencia hasta que IPv6 se haya implantado definitivamente, pero tiene el inconveniente de que aumenta la complejidad en la configuración de red de los equipos. 45 SERVICIOS EN RED © RA-MA Finalmente, para que la conexión se realice sin problemas, también es necesario disponer de al menos una dirección de servidor de nombres o DNS (Domain Name System o Sistema de Nombres de Dominio). Con estas direcciones nuestro equipo es capaz de convertir las direcciones del estilo “www. tierra.com” en direcciones IP, que son las que realmente utiliza el sistema. La descripción de DNS se realizará con más detalle en el capítulo 3. Otro parámetro de configuración de la arquitectura TCP/IP son los puertos de comunicación. Un puerto es el lugar por el cual un equipo solicita establecer conexión con otro para acceder a un determinado servicio. Cada tipo de comunicación tiene un puerto asociado, que puede tomar un valor entre 1 y 65.535. Por ejemplo, para poder obtener las páginas HTML de un servidor de Internet es necesario que éste tenga “abierto” (a la escucha) el puerto 80, que es la puerta de entrada por donde los equipos remotos solicitan las páginas. Se denominan puertos porque son las puertas de entrada y de salida de la información y a veces hay que tener mucho cuidado en protegerlas puesto que son los lugares por donde pueden entrar programas espía o de tipo caballo de troya. Figura 1.14. Esquema de conexión entre equipos a través de los puertos de comunicación. Los puertos que tiene activos el servidor del ejemplo son para recibir y reenviar los mensajes de correo electrónico, transferir páginas de hipertexto e intercambiar archivos. 46 © RA-MA 1 n Introducción a los servicios de red Cuando un usuario desea conectar con un servicio de otro equipo, necesita indicar, por un lado, la dirección IP del equipo y el número de puerto. A este par formado por dirección IP y número de puerto se le llama conector o socket. Se dice que un puerto de comunicación está abierto o a la escucha cuando existe un programa en el equipo que controla las comunicaciones que llegan a través de ese puerto. Es posible controlar la información que circula a través de los puertos utilizando un cortafuegos o firewall, que se instala en el propio equipo o que funciona de forma autónoma entre el equipo y la red. También existen dispositivos encaminadores o routers (véase el apartado 1.2.2) que pueden realizar funciones de cortafuegos. Figura 1.15. Filtrado de puertos por un cortafuegos o encaminador. En este ejemplo, el cortafuegos, que puede ser un equipo independiente o un programa que funciona en el propio servidor, permite las conexiones desde el exterior con determinados puertos (en este caso, el 21 y el 80). Sin embargo, aunque el puerto 25 también está activo, el cortafuegos o encaminador no permitirá las conexiones a través de él. 47 SERVICIOS EN RED © RA-MA Cuando se instala un servicio en un equipo siempre es necesario que el puerto o puertos asociados se encuentren abiertos o activos. Por defecto, el equipo activa los puertos cuando se pone en marcha el servicio, de forma que el resto de ordenadores de la red pueden utilizarlo. Sin embargo, cuando queremos que un servicio sea accesible desde el exterior (por ejemplo, cualquier equipo en Internet), entonces necesitamos activar de forma manual sus puertos asociados en nuestro encaminador o cortafuegos. La configuración de puertos en un cortafuegos o encaminador resulta bastante sencilla y permite que exista más de un equipo servidor (en el ejemplo de la figura 1.15 solamente aparece uno). Para ello, hay que acceder a su ventana de configuración (normalmente utilizando un programa suministrado por el fabricante o un navegador de páginas HTML) y establecer dos parámetros: Número de puerto que se va a “abrir” (activar). n Dirección IP del equipo al que se van a enviar los mensajes que lleguen por ese puerto. n Dependiendo del dispositivo, la apertura de puertos se realiza utilizando un conjunto de opciones y menús que puede variar. En los dispositivos encaminadores esta opción suele aparecer con los nombres “NAT”, “SUA”, “Puertos”, “Seguridad”, etc. La ventana de configuración está formada normalmente por una tabla en la que se especifican números de puertos y direcciones IP de los servidores. En la tabla 1.3 se muestra una lista con algunos de los puertos de transporte más utilizados, mientras que en la figura 1.16 se muestra un ejemplo de ventana de configuración de puertos en un encaminador. Tabla 1.3. Algunos puertos TCP/UDP estándares 48 Puerto Nombre del servicio Descripción 7 Echo Puerto de “eco” 20 FTP Datos 21 FTP Protocolo FTP de transferencia de archivos 22 SSH Protocolo de terminal remoto seguro 23 Telnet Protocolo de terminal remoto 25 SMTP Protocolo de transferencia de correo 42 Nameserver Servidor de nombres 43 WHOIS Protocolo de información © RA-MA 1 n Introducción a los servicios de red 53 DNS Servidor de nombres 67 Bootp Servidor 68 Bootp Cliente Protocolo de arranque a través de la red 69 TFTP Protocolo FTP trivial 79 Finger Información sobre usuarios en equipos 80 HTTP Protocolo de transmisión de hipertexto 88 Kerberos Protocolo de autentificación seguro 109 POP2 110 POP3 Protocolos de gestión de correo electrónico 137-139 NetBIOS Protocolo de la red Microsoft 143 IMAP Protocolo de correo electrónico 161, 162 SNMP Protocolo de administración de red 194 IRC Internet Relay Chat 256 SNMP Protocolo de administración de red 389 LDAP Protocolo de localización de servicios 443 HTTPS Protocolo HTTP seguro (cifrado) 445 SMB CIFS Protocolo de la red Microsoft 513 Rlogin Protocolo de terminal remoto 514 Rshell Protocolo de terminal remoto 515 Impresora TCP/IP Protocolo de una impresora de red 520 RIP Protocolo de encaminamiento 524 NCP Protocolo de la red Novell NetWare 1080 Sockets Servidor proxy 989 FTP Datos sobre SSL 990 FTP sobre SSL 992 Telnet sobre SSL Protocolo Telnet seguro (cifrado) 993 IMAP sobre SSL Protocolo IMAP seguro (cifrado) 1745 Winsock-proxy Servidor proxy de Microsoft 3306 MySQL Base de datos relacional 2049, 4045 NFS Sistema de archivos de red de Linux 60006007 X-Window Interfaz gráfica de Unix/Linux 6667 IRCD Internet Relay Chat Protocolo FTP seguro (cifrado) 49 SERVICIOS EN RED © RA-MA Figura 1.16. Ventana de configuración de puertos de un encaminador. Como se puede observar, en esta ventana se muestra una tabla donde se especifica, para un equipo, cuál es el rango de puertos que tiene asignado. De esta forma, cuando el encaminador recibe una petición con un número de puerto, la redirige al equipo correspondiente. Para poder conocer el estado de actividad de los puertos de comunicación de un equipo concreto, se pueden utilizar diferentes herramientas que envían mensajes a un rango de puertos especificado y comprueban si éstos están activos. Algunas de las más populares son nmap de Linux, GFI LANguard, etc. Por regla general, cuantos más puertos de comunicación se encuentren activos o abiertos en nuestro equipo, mayor será el riesgo a padecer un problema de seguridad. Hay que tener en cuenta que los puertos de comunicaciones son los lugares por donde nuestro equipo envía y recibe información de la red, por lo que cuantos más tengamos abiertos, más posibilidades de intrusión por parte de algún hacker malicioso. Algunos programas, como el ya mencionado GFI LANguard, son capaces de detectar vulnerabilidades y problemas de seguridad asociados con los puertos de comunicación que tenemos activos en nuestro equipo. 50 © RA-MA 1 n Introducción a los servicios de red 1.4 El sistema operativo como gestor de servicios Desde el punto de vista de los usuarios que trabajan sobre una red de comunicación, ésta no es más que un conjunto de ordenadores conectados mediante cableado y tarjetas, además de los sistemas operativos instalados en esas estaciones. Por definición, un sistema operativo es un conjunto de programas que funcionan sobre una computadora y que se encarga de administrar de forma eficiente los recursos de ella. Se podría decir que un sistema operativo es a un ordenador como un coordinador es a un proyecto empresarial: su labor fundamental es la de poner de acuerdo a las diferentes partes (dispositivos que componen el ordenador) para que puedan trabajar conjuntamente y de la forma más eficiente posible. Así mismo, el sistema operativo también incluye un conjunto de rutinas básicas que facilitan la tarea de desarrollo de aplicaciones. Desde el punto de vista de la gestión que lleva a cabo un sistema operativo sobre los recursos de red, podemos dividir a éstos en dos tipos: sistemas operativos de cliente y sistemas operativos de servidor. Un sistema operativo de cliente (habitualmente requiere un menor espacio de almacenamiento en disco y menores requerimientos de memoria y capacidad de proceso) es aquél que no ha sido desarrollado con soporte para la administración de los recursos de la red aunque sí puede acceder a ellos como recursos de trabajo. Por su parte, un sistema operativo de servidor es aquél especialmente diseñado para trabajar en una red y permitir la administración eficiente de sus recursos. Aunque esta división todavía es aplicable a los sistemas operativos del mercado, hay que decir que resulta cada vez más confusa, ya que los sistemas operativos de cliente y servidor llegan a diferenciarse solamente por las aplicaciones y servicios que tienen instalados, no por el núcleo del sistema. 1.4.1 El modelo cliente-servidor La mayoría de los servicios ofrecidos en una red de comunicación se basan en el mecanismo de interacción cliente-servidor. Según este modelo, existen una serie de equipos, llamados clientes, que son habitualmente manejados por los usuarios, que solicitan una serie de servicios para completar sus tareas. Por otro lado, en la red también deben existir otros equipos que sean capaces de 51 SERVICIOS EN RED © RA-MA ofrecer los servicios solicitados, conocidos como servidores. Entre los servicios que pueden solicitar los clientes para ser atendidos por los servidores, podemos encontrar el acceso a páginas web, impresión de documentos, descarga de archivos, transferencia de correo electrónico, etc. Cuando un equipo quiere acceder a los servicios disponibles en un servidor remoto, primero tiene que enviar un mensaje de solicitud y dirigirlo al puerto asociado a ese servicio (véase las figuras 1.14 y 1.15). El servidor deberá tener activo ese puerto para recibir la solicitud, procesarla y enviar los resultados. En este modelo, el cliente debe conocer cuál es el número de puerto que tiene asociado ese servicio en el servidor, normalmente porque se trata de un puerto bien conocido. El concepto de modelo cliente-servidor es muy amplio y en el campo de la informática se puede aplicar tanto a programas que se ejecutan en un mismo equipo como a equipos conectados a través de la red. De igual forma, este modelo no restringe la función que desempeña cada equipo en la red, de forma que un equipo se puede comportar como cliente de unos determinados servicios a la vez que comportarse como servidor de otros. Por todo ello, el modelo clienteservidor funciona muy bien en redes de ordenadores donde los servicios se gestionan a través de servidores centralizados y donde pueden existir varios servidores que repartan el trabajo de diferentes tareas. En general, las características que definen a un equipo como cliente son: 4 Requiere de una potencia de cálculo menor, aunque esto dependerá de los programas que ejecute. 4 Es utilizado por los usuarios para realizar su trabajo diario. 4 Es el encargado de iniciar las peticiones o solicitudes. 4 Recibe las respuestas de los servidores, obteniendo la información que ha solicitado o un mensaje de rechazo. 4 Puede realizar peticiones de varios servicios a diferentes servidores. Por su parte, las características que definen a un equipo como servidor son: 4 Suele requerir una gran potencia de cálculo y memoria principal para poder atender todas las peticiones que recibe. 4 Permanece a la espera de recibir peticiones. 52 © RA-MA 1 n Introducción a los servicios de red 4 Cuando recibe una petición, la procesa y envía los resultados o un mensaje de rechazo. 4 Suele aceptar un gran número de peticiones, aunque este valor puede limitarse. 4 Es un equipo dedicado a atender peticiones y los usuarios no suelen trabajar con él directamente. Entre las ventajas del uso del modelo cliente-servidor en los servicios de red podemos destacar: 4 Se establece un mayor control de la seguridad y el acceso a servicios autorizados, ya que éste se realiza a través de cada servidor. 4 Puede aumentarse fácilmente la capacidad de los equipos o su número. 4 Permite un mantenimiento más sencillo y una división de responsabilidades entre los administradores, ya que los cambios solamente se deben realizar en los servidores involucrados. El modelo cliente-servidor también tiene sus inconvenientes. Los más importantes son: 4 Sobrecarga de los servidores cuando existen muchas peticiones. 4 El mal funcionamiento de un servidor hace que no estén disponibles los servicios que ofrece. 4 Los servidores requieren de sistemas operativos y programas muy estables. 1.4.2 Herramientas de administración de servicios Los sistemas operativos modernos disponen de una serie de programas y herramientas que facilitan la instalación, configuración y administración de los servicios de que disponen. En este apartado se explican algunas de las herramientas más importantes de que disponen los sistemas operativos Microsoft Windows y Linux. 53 SERVICIOS EN RED © RA-MA 1.4.2.1 Herramientas en Microsoft Windows Para administrar de forma completa los servicios disponibles en los sistemas operativos Microsoft Windows 2000/2003/2008 se utilizan las denominadas Herramientas administrativas, accesibles desde el Menú de Inicio en la opción “Programas” para Windows 2000 o en la opción “Herramientas administrativas” para Windows 2003 (figura 4.16). Algunas de las opciones que aparecen por defecto en el menú de Herramientas administrativas no están disponibles por defecto en el sistema y se pueden añadir cuando se instalan los servicios correspondientes. Figura 1.17. Menú Herramientas administrativas de Windows Server 2008. Las opciones disponibles en este menú dependen de los servicios instalados en el equipo. Algunas de las herramientas más importantes que incluye Windows 2000/2003/2008 Server son las siguientes: n 54 Administración de equipos: se usa para la administración del equipo local o equipos remotos. Desde esta herramienta se puede realizar la gestión completa de un equipo e incluye las herramientas del sistema (visor de sucesos, administrador de dispositivos, etc.), almacenamiento (desfragmentador de discos, administrador de discos, etc.) y servicios y aplicaciones instaladas (DHCP, IIS, etc.). Estas herramientas se llaman complementos y pueden añadirse o eliminarse del administrador de equipos para añadir o eliminar tareas administrativas a los usuarios. © RA-MA 1 n Introducción a los servicios de red n Administrador de Internet Information Services (IIS): se usa para administrar el Servidor de Información de Internet (IIS). n Administrador del servidor, Administre su servidor o Asistente para configurar su servidor: se utiliza para instalar, desinstalar y configurar servicios en el equipo. n DHCP: se usa para configurar el servidor DHCP del equipo local. n DNS: se usa para configurar el servidor DNS del equipo local. n Directiva de seguridad local: se utiliza para establecer características de seguridad del equipo cuando éste no pertenece a ningún dominio. n Directiva de seguridad de dominio: se utiliza para establecer características de seguridad sobre el dominio. n Directiva de seguridad del controlador de dominio: se utiliza para establecer características de seguridad sobre el servidor del dominio. n Servicios: muestra una lista con todos los servicios iniciados en el sistema y los que están inactivos. n Terminal Services: incluye las herramientas para el acceso remoto a equipos. n Programador de tareas: se utiliza para definir qué programas se van a ejecutar en el equipo en una fecha o con una frecuencia determinadas. n Visor de eventos o sucesos: muestra información sobre los sucesos, avisos o errores que se han producido mientras el equipo ha estado en funcionamiento. En Microsoft Windows Server 2008, la herramienta administración del servidor (véase la figura 1.18) resulta muy importante porque a través de ella se pueden añadir e instalar servicios en el equipo. Esta herramienta es accesible pulsando en “Inicio || Herramientas administrativas || Administración del servidor”. 55 SERVICIOS EN RED © RA-MA Figura 1.18. Herramienta de administración del servidor en Windows Server 2008. Esta herramienta es utilizada fundamentalmente para añadir o eliminar servicios. La herramienta de administración del servidor en Windows Server 2008 incluye las siguientes opciones: n Funciones: se utiliza para agregar o eliminar servicios. n Características: se usa para agregar o eliminar características y componentes del servidor. n Diagnóstico: muestra información sobre el rendimiento del equipo, los eventos producidos y los dispositivos instalados. n Configuración: permite consultar o establecer algunos parámetros del servidor, como el programador de tareas, el cortafuegos, los servicios en ejecución, etc. n Almacenamiento: permite configurar los medios de almacenamiento del equipo, además de la realización de copias de seguridad. Cada vez que se añade un servicio nuevo en Windows Server 2008, las opciones para configurarlo y administrarlo aparecerán en el menú Herramientas administrativas, tal y como se explica más arriba. 56 © RA-MA 1 n Introducción a los servicios de red Con las versiones Windows Server 2000/2003/2008 es posible realizar tareas de administración sin necesidad de estar sentado delante del servidor. Para ello, se pueden utilizar los Servicios de Terminal (Terminal Services) que permiten realizar una conexión al servidor desde un equipo remoto con el propósito de ejecutar operaciones de administración. El equipo desde donde se realiza la conexión puede ser cualquier versión de Microsoft Windows, Unix/Linux o Apple. Gracias a los servicios de terminal, es posible iniciar una sesión de terminal gráfico en el servidor, de forma que se utilizan los recursos de ese equipo (procesador, memoria, disco duro, etc.) en lugar de utilizar los recursos locales. La impresión que tiene el usuario cuando utiliza este tipo de servicios es que ha iniciado una sesión directamente en el servidor y, por lo tanto, tiene a su disposición la gran capacidad de proceso que caracteriza a estos equipos. La figura 1.9 muestra un ejemplo de acceso a un servidor remoto mediante estas herramientas. 1.4.2.2 Herramientas en GNU/Linux Al igual que cualquier otro sistema operativo, Linux necesita de una serie de herramientas de administración del sistema que permita gestionar todos sus recursos y realizar configuraciones personalizadas a gusto de los usuarios y administradores. Tradicionalmente, estas herramientas no han existido y todas las tareas se realizaban modificando los archivos de configuración correspondientes o usando órdenes. Esta técnica tiene la ventaja de que permite modificar cualquier parámetro, está más estandarizada y se puede utilizar de la misma forma en diferentes distribuciones y versiones (aunque los nombres y las ubicaciones de los archivos pueden variar). Sin embargo, tiene el inconveniente de que hay que tener mucho cuidado a la hora de manejar las órdenes o modificar los archivos, ya que cualquier error de sintaxis puede hacer que el servicio afectado o todo el sistema deje de funcionar correctamente. Actualmente, desde el desarrollo de los entornos gráficos de interacción, han aparecido una serie de herramientas que facilitan enormemente la configuración y administración del sistema. Sin embargo, algunas de ellas son muy dependientes de la distribución de Linux utilizada y puede que no incluyan todas las opciones de configuración. Todas las modificaciones en la configuración del sistema (salvo aquéllas que tengan que ver sólo con la configuración personalizada de un usuario) deben realizarse utilizando la cuenta de usuario que tiene privilegios para realizar estas operaciones. Esta cuenta, que normalmente es root, dispone de acceso tanto a las órdenes, archivos de configuración y herramientas gráficas de administración. Por seguridad, el uso de esta cuenta debe estar limitado a realizar este tipo de acciones y utilizar una cuenta de usuario normal para el resto de operaciones que no requieran de permisos especiales. 57 SERVICIOS EN RED © RA-MA Cuando se accede al sistema como un usuario normal, es posible convertirse en usuario root en cualquier momento para poder realizar operaciones de administración del sistema. Si un usuario normal intenta acceder a cualquier herramienta de administración del sistema que requiera privilegios de root, el sistema nos solicitará la contraseña de esta cuenta de administrador antes de acceder a ella (figura 1.19). En caso de que necesitemos ejecutar una orden en la línea de órdenes con los privilegios de administrador, podemos cambiarnos a root utilizando la orden su. Hay que tener en cuenta que estos cambios a usuario root solamente afectan a las ventanas donde se realizan; para el resto de aplicaciones, ventanas y opciones de los menús del entorno gráfico, seguimos trabajando con nuestro usuario normal. Figura 1.19. Ventana de solicitud de la contraseña de root. Ésta aparece cuando un usuario normal ejecuta cualquiera de las utilidades de OpenSUSE Linux que requieren de privilegios de superusuario. A veces puede resultar muy útil la posibilidad de ejecutar determinados programas con los privilegios de root. Para ello, se pueden utilizar las órdenes su, sudo (que funciona con programas de la línea de órdenes), kdesu (que funciona con programas del entorno gráfico KDE) o gksudo (que funciona en el entorno Gnome). Por ejemplo, si deseamos ejecutar la orden ifconfig eth0 como usuario root, deberemos escribir lo siguiente: paco@linux:~> su –c ‘ifconfig eth0’ Password: eth0 Link encap:Ethernet Hwaddr 00:E0:29:64:99:35 inet addr:10.0.1.1 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors: 0 dropped:0 overruns:0 frame:0 TX packets:6 errors: 0 dropped:0 overruns:0 carrier:0 collisions:1 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:460 (460.0 b) Interrrupt:5 Base address:0x5000 paco@linux:~> 58 © RA-MA 1 n Introducción a los servicios de red Por ejemplo, si queremos ejecutar el explorador de archivos Konqueror con los privilegios de root, deberemos escribir lo siguiente en la línea de órdenes: paco@linux:~> kdesu ‘konqueror’ Lo anterior hará que el sistema nos solicite la contraseña de root con una ventana como la de la figura 1.20. Una vez introducida, se abrirá la ventana principal del explorador, pero con los privilegios del usuario administrador. Si utilizamos muy a menudo el programa Konqueror con los privilegios de root, podemos crear un acceso directo en el escritorio y así nos ahorraremos tener que escribir las órdenes necesarias. La forma de hacer esto se explica en el ejemplo 1.2. ¡ EJEMPLO 1.2 Veamos los pasos que tenemos que seguir para crear un acceso directo en el escritorio para el programa Konqueror con privilegios de root: 1. Pulsar con el botón derecho del ratón sobre la carpeta del escritorio y seleccionar la opción “Crear un nuevo... || Enlace a aplicación...” del menú contextual. 2. En la ventana que aparece (figura 1.20), escribir el nombre del acceso directo y seleccionar su icono en la página “General”. 3. Acceder a la página “Aplicación” y escribir “kdesu konqueror” en el cuadro de texto titulado “Orden”. Finalmente, pulsar en el botón “Aceptar”, lo que creará el icono del acceso en el escritorio. Comprobar que funciona correctamente haciendo clic sobre él. Figura 1.20. Ventana de creación de un acceso directo en el entorno KDE 4 de Linux. En la página “General” se puede establecer el nombre del acceso y su icono. 59 SERVICIOS EN RED © RA-MA Una de las utilidades más importantes para la administración de los sistemas Red Hat es control-panel (panel de control), que permite realizar todas las tareas básicas de administración del sistema mediante un entorno de ventanas. Esta utilidad requiere del entorno gráfico y de su ejecución como usuario root. Para acceder a la utilidad, se puede ejecutar la orden control-panel desde una ventana de línea de órdenes o seleccionar la opción correspondiente en el menú principal del entorno gráfico. En algunos casos, el sistema incluye el icono de acceso también en el escritorio. En las versiones actuales de los sistemas Fedora, el panel de control se ha incluido como un menú integrado en el entorno Gnome. Las opciones de este menú están disponibles en “Sistema || Administración” (véase la figura 1.21). En el entorno KDE 4, estas opciones de configuración están disponibles en “Preferencias del sistema” del menú K. También es posible utilizar el Panel de control de Gnome, donde se incluyen muchas opciones importantes de administración del sistema. Figura 1.21. Opciones de administración disponibles en el entorno de Fedora 11. La mayoría de opciones necesitan privilegios de administrador (root) para poder acceder a ellas. Las herramientas de administración incluidas en Red Hat y Fedora pueden instalarse y desinstalarse de forma individual en el sistema (véase el apartado 1.4.3). Estas herramientas se nombran comenzando por redhat-config (en sistemas Red Hat) o system-config (en sistemas Fedora). Algunas de las herramientas disponibles en los sistemas Fedora que se utilizan en este libro son: 60 © RA-MA 1 n Introducción a los servicios de red n Autenticación (system-config-authentication): configura los aspectos de autenticación de los usuarios en el sistema, indicando la fuente desde donde se va a obtener la información del usuario (NIS, LDAP, etc.), el tipo de autenticación (Kerberos, LDAP, SMB, tarjeta inteligente, etc.) y otros parámetros opcionales. n Cortafuegos (system-config-firewall): permite configurar el cortafuegos del equipo local para filtrar el tráfico no deseado que recibe o envía a través de la red (véase el capítulo 5). Hay que tener en cuenta que esta herramienta gráfica solamente realiza una configuración básica del cortafuegos, por lo que una configuración más avanzada requiere de la modificación de los archivos de configuración correspondientes. n Idioma (system-config-language): establece el idioma utilizado por defecto en el sistema Linux. n Red (system-config-network): configura todos los parámetros de red en el equipo. n Servicios (system-config-services): permite configurar los niveles de ejecución del sistema Linux y los procesos demonios que se inician automáticamente en el arranque (véase el apartado 1.4.4 de este capítulo). n Usuarios y grupos (system-config-users): permite crear, eliminar y configurar cuentas de usuario y grupos para el acceso y la gestión de los permisos en el sistema Linux. n Agregar/Quitar Software (system-install-packages): sirve para instalar y desinstalar paquetes en el sistema. Esta opción está disponible en el menú “Aplicaciones” de Gnome. Existen otras muchas herramientas de configuración del sistema que van incluidas con el panel de control de Gnome. Estas herramientas se denominan gnome-, seguido del nombre de la herramienta. Para los sistemas Linux en la distribución de SUSE se utiliza la herramienta YaST, que está disponible en modo texto y entorno gráfico. Esta herramienta debe ejecutarse como usuario root y es accesible desde el menú de configuración del entorno gráfico o ejecutando las órdenes yast y yast2 desde la línea de órdenes. La figura 1.22 muestra la ventana principal de YaST en openSUSE 11.1. 61 SERVICIOS EN RED © RA-MA Figura 1.22. Ventana principal de la herramienta de configuración YaST en OpenSUSE 11.1. Esta herramienta está dividida en ocho grupos de opciones principales, que se muestran como iconos en la parte izquierda de la ventana. La herramienta YaST conforma un entorno centralizado de administración del sistema. Desde ella se pueden configurar los parámetros del sistema en cuanto a dispositivos, red, seguridad, usuarios y grupos, paquetes instalados, etc. Gracias a ella, el usuario puede acceder de una forma más sencilla a todos los parámetros de configuración del sistema, sin necesidad de tener que editar una enorme cantidad de archivos de texto distintos como ocurría en las antiguas versiones. Los grupos de opciones disponibles en YaST2 son los siguientes: 62 n Software: incluye todas las herramientas para la instalación y desinstalación de programas, además de la actualización del sistema con nuevas versiones y la selección de diferentes fuentes de instalación. n Hardware: se utiliza para configurar los dispositivos y los periféricos conectados al sistema, excepto los relacionados con la red. n Sistema: se usa para configurar parámetros y servicios generales del sistema, como los programas que se inician en el arranque, las particiones de disco, copia de seguridad, etc. n Dispositivos de red: incluye opciones para la configuración de los dispositivos de red, como tarjetas de red local, módem, RDSI, etc. © RA-MA 1 n Introducción a los servicios de red n Servicios de red: se utiliza para configurar los servicios de red, es decir, para que el ordenador funcione como un cliente o servidor. n Novell AppArmor: se trata de una herramienta de seguridad que se distribuye bajo licencia GPL y está desarrollada y mantenida por la empresa Novell. Su objetivo es disponer de un sistema que permita gestionar perfiles de seguridad en aplicaciones, de forma que éstas queden restringidas para los usuarios dependiendo de los permisos que éstos tengan asociados. n Seguridad y usuarios: incluye algunas opciones de configuración de la seguridad en el sistema además de las cuentas de usuarios y grupos. n Virtualización: permite configurar Xen, un programa distribuido bajo licencia Open Source que permite instalar máquinas virtuales en Linux. Una máquina virtual es un programa que emula a un ordenador real, lo que permite instalar diferentes sistemas operativos que luego funcionarán dentro de ventanas del entorno Linux. n Soporte: permite contratar un servicio técnico de mantenimiento con Novell, la empresa que mantiene OpenSUSE. n Miscelánea: incluye otras opciones de configuración, como enviar una consulta de soporte técnico, administrar los registros log (del sistema y del arranque) o gestionar discos de controladores de diferentes fabricantes. Además de las herramientas de administración específicas de algunas distribuciones de Linux, también es posible instalar y utilizar otras herramientas de administración que pueden utilizarse en la mayoría de las distribuciones. Una herramienta muy utilizada es Linuxconf (su ventana principal aparece en la figura 1.23), que permite administrar la configuración de la red, los usuarios y los grupos del sistema local, el acceso a particiones locales y remotas, el modo de arranque del sistema, etc. Aunque son muchos los parámetros del sistema accesibles, hay que tener en cuenta que esta utilidad no dispone de algunas opciones básicas de configuración. Estas últimas deben consultarse desde otras utilidades o de forma manual mediante órdenes o archivos de configuración. Si la distribución de Linux no incluye la utilidad Linuxconf, ésta podrá ser descargada gratuitamente desde Internet e instalada en el sistema. 63 SERVICIOS EN RED © RA-MA Figura 1.23. Ventana principal de la utilidad Linuxconf instalada en Linux Red Hat (ahora Fedora). Este programa permite configurar parámetros generales del sistema y gestionar cuentas de usuarios y grupos. Otra herramienta de configuración gráfica muy interesante es Webmin. Se trata de un programa abierto escrito por Jaime Cameron que permite configurar la mayoría de opciones de un sistema Linux. Es capaz de funcionar en más de 35 sistemas Unix/Linux diferentes, ofrece soporte a más de 20 lenguajes y en cada nueva versión da soporte a nuevas características del sistema operativo. La forma de acceder a Webmin una vez que está instalado en el sistema es a través de una ventana del navegador de Internet, especificando la dirección del propio equipo local (véase la figura 1.24). Este método permite también acceder a Webmin desde otro equipo distinto al que se encuentra instalado, lo que facilita las tareas de administración remota. La instalación de este programa se muestra como ejemplo en el apartado 1.4.3.2 de este capítulo. 64 © RA-MA 1 n Introducción a los servicios de red Figura 1.24. Ventana principal de Webmin. Por cuestiones de seguridad, para acceder a esta ventana es necesario registrarse con un nombre de usuario (normalmente suele ser admin) y una contraseña. La herramienta Webmin está construida mediante módulos, lo que flexibiliza su configuración a la vez que facilita su actualización. Los módulos se dividen en categorías para que resulte más fácil su localización. Las categorías definidas por defecto en Webmin son las siguientes: n Webmin: incluye los módulos de configuración propios de Webmin. Desde esta opción se puede configurar el propio programa Webmin (como el idioma, las cuentas de usuario que van a tener acceso a este programa, etc.). n Sistema: aquí se encuentran los módulos relacionados con la configuración del sistema operativo. A este grupo pertenecen las opciones de configuración de los programas que se inician automáticamente en el arranque, instalar o desinstalar aplicaciones, gestionar cuentas de usuario y grupos, administrar sistemas de archivos locales y en red, etc. 65 SERVICIOS EN RED © RA-MA n Servidores: incluye los módulos de configuración de la mayoría de programas servidores que se pueden instalar en el equipo. Aquí se incluyen opciones para compartir archivos con equipos Windows mediante Samba, configurar un servidor de correo electrónico, servidor de páginas Web, servidor de bases de datos, etc. n Trabajando en red: aquí podemos encontrar los módulos de configuración de red del sistema, además de otros servicios como NFS, programa cortafuegos, etc. n Hardware: esta opción incluye los módulos relacionados con la configuración de dispositivos hardware del sistema, como impresoras, discos duros, grabadoras de CD y DVD, sistemas RAID, etc. n Clúster: incluye los módulos de configuración y administración de un sistema clúster (varios equipos conectados en red que funcionan como si fuera uno solo). n Otros: esta categoría incluye otros módulos adicionales, entre los que podemos encontrar un administrador de archivos, línea de órdenes, órdenes ejecutadas habitualmente, etc. Webmin dispone de módulos estándares, que han sido desarrollados por el mismo equipo que desarrolla esta herramienta, además de módulos de terceras partes, que han sido desarrollados por otras personas para cumplir determinados requerimientos concretos. Cuando se instala Webmin (véase el apartado 1.4.3.2), éste comprueba qué programas se encuentran instalados en el sistema y activa aquellos módulos estándares relacionados. Si algún módulo estándar no es necesario porque la herramienta que configura no está instalada en el sistema, entonces éste aparecerá en un apartado denominado “Módulos no utilizados” (Un-used Modules), dentro de la página principal de Webmin. Si Webmin se ha instalado con anterioridad a alguna herramienta que puede ser gestionada con un módulo estándar, entonces éste permanecerá en el grupo de módulos no utilizados hasta que se pulse en la opción “Refrescar módulos” (Refresh Modules), momento en el que pasará a formar parte de la categoría correspondiente. Además de estas herramientas, en las distribuciones de Linux se incluyen otras muchas que agilizan las tareas de administración del sistema, aunque su utilidad se reduce a parámetros específicos. Otros desarrolladores de software han implementado incluso otras versiones distintas de aplicaciones para la gestión de un sistema Linux. 66 © RA-MA 1 n Introducción a los servicios de red 1.4.3Instalación y desinstalación de programas Cuando se necesita que un determinado equipo ofrezca algún servicio, es necesario instalar en él todos los programas necesarios, que suelen estar disponibles a través de uno o varios archivos. Estos archivos suelen contener un programa de instalación que guía paso a paso, una herramienta de configuración del servicio, el proceso demonio encargado de atender las peticiones y varios archivos de configuración o valores del registro del sistema. A la hora de instalar un determinado servicio en el sistema, podemos hacerlo de varias formas: n Abriendo el programa ejecutable de instalación: en los sistemas Microsoft Windows suele ser un archivo con extensión “EXE” o “BAT”, mientras que en los sistemas GNU/Linux suele ser un archivo con el nombre “install” o “setup” y sin extensión (o con extensiones “sh”, “pl”, etc.). Este método de instalación suele estar disponible para servicios que no se incluyen con el sistema operativo o han sido desarrollados por diferentes fabricantes. n A través de la herramienta de instalación y desinstalación de programas: los sistemas Microsoft Windows disponen de una herramienta gráfica de instalación y desinstalación de programas, tanto para aquellos que se incluyen con el propio sistema operativo, como para los que no. En los sistemas GNU/Linux se utilizan sistemas de instalación y desinstalación de paquetes que facilitan enormemente estas tareas, automatizando incluso los procesos de descarga de los archivos y comprobación de la integridad. Estos mecanismos se explican en los apartados siguientes. 1.4.3.1Instalación de componentes en Microsoft Windows En Windows existen dos tipos de programas que pueden instalarse en el sistema: los componentes de Windows (programas y utilidades que se incluyen en el disco de instalación del sistema operativo) y las aplicaciones (programas de uso general que no se incluyen en el disco de instalación de Windows porque se distribuyen como aplicaciones separadas o no son desarrolladas por Microsoft). Las aplicaciones se instalan y desinstalan en todas las versiones de Windows utilizando el icono “Agregar o quitar programas”, que se encuentra en el Panel de control. También se puede utilizar el asistente de configuración 67 SERVICIOS EN RED © RA-MA del servidor para instalar servicios adicionales en el sistema. Sin embargo, la forma más común de instalar una aplicación independiente del sistema operativo es ejecutar directamente el programa de instalación de la propia aplicación (tendrá un nombre del estilo INSTALAR.EXE, INSTALL.EXE, SETUP.EXE, INSTALAR.BAT, etc.) a través de la opción “Ejecutar” del Menú de Inicio. Por su parte, los componentes de Windows se instalan o desinstalan desde varias ventanas del sistema dependiendo de su tipo. Los componentes de red de Windows (servicios, protocolos y clientes) se gestionan desde las propiedades del icono “Mis sitios de red” del Escritorio o el Menú de Inicio (Windows 2000/XP/2003) o desde el Centro de redes y recursos compartidos (Windows Vista/7/2008). El resto de componentes se instalan, al igual que las aplicaciones, desde el icono “Agregar o quitar programas” (Windows 2000/ XP/2003) o “Programas y características” (Windows Vista/7/2008), accesibles desde el Panel de control. La figura 1.25 muestra la herramienta de instalación y desinstalación de componentes que está disponible en Windows Vista/7/2008. Figura 1.25. Ventana de instalación y desinstalación de características en Windows 7. Desde esta ventana se pueden instalar los programas que se incluyen con el sistema operativo. 1.4.3.2Instalación de paquetes en GNU/Linux A la hora de instalar o desinstalar programas y aplicaciones en Linux, hay que tener en cuenta en primer lugar una serie de términos relacionados: 68 © RA-MA 1 n Introducción a los servicios de red n Instalación: es el proceso previo que se requiere para poder utilizar un programa en el equipo y consiste en copiar en su disco duro todos los archivos necesarios, además de realizar una configuración conveniente. Instalar un programa no es la única operación que necesitamos realizar para poder trabajar con él correctamente. En algunos casos, también es necesario realizar un paso final de configuración. Dependiendo del programa instalado, esta configuración puede suponer la ejecución de uno o varios programas o simplemente la modificación de algunos archivos. Para cada caso concreto, habrá que consultar la documentación sobre la instalación que incluye el programa. n Desinstalación: consiste en eliminar los archivos que forman parte del programa del disco duro del equipo para que deje de estar disponible. Esta operación permite recuperar espacio del disco duro cuando un programa o aplicación ya no va a ser utilizado. También es necesario realizar una operación de configuración que restaure el sistema, en la medida de lo posible, al estado anterior a la instalación de ese programa. n Actualización: consiste en instalar versiones más modernas de programas que ya están instalados en el sistema. La actualización no requiere normalmente la copia de todos los archivos que contiene el paquete, pero son necesarias otras operaciones de configuración adicionales que permitan que la nueva versión sea estable. n Paquete: está formado por un conjunto de archivos o ficheros que se distribuyen conjuntamente, de forma que es la unidad mínima de instalación en un sistema operativo. Para evitar complejidad y facilitar las tareas de administración, no se permite que un paquete se instale parcialmente en el sistema. Es posible que un programa esté distribuido en varios paquetes y que un paquete contenga varios programas. El paquete se almacena en un archivo con la extensión correcta para identificar su tipo (por ejemplo, “.rpm” o “.deb”) y contiene, además de los archivos a copiar, las rutas donde se copian, información sobre la persona que los ha desarrollado, una clave cifrada que asegura su autenticidad, la suma de verificación para comprobar si ha sido alterado, las operaciones para configurar el programa, etc. n Repositorio o fuente de instalación: se trata de un gran almacén que guarda los archivos con los paquetes para instalar. La fuente de instalación más común siempre ha sido el soporte óptico en CD o DVD, pero actualmente han proliferado los repositorios oficiales y no oficiales disponibles en servidores de Internet. 69 SERVICIOS EN RED © RA-MA n Dependencia: en muchas ocasiones, un paquete puede requerir de otro para poder funcionar correctamente (porque dispone de alguna librería o archivo que necesita). En este caso, es necesario que el paquete requerido sea instalado antes para poder mantener la estabilidad del programa que queremos instalar e incluso la del sistema. n Conflicto: Además de dependencias, también pueden producirse conflictos en la instalación de paquetes. Estas situaciones se producen cuando queremos instalar un paquete que no puede coexistir al mismo tiempo con otros paquetes a instalar o ya instalados. Los conflictos entre paquetes ocurren normalmente porque se trata de programas que realizan funciones similares en el sistema, con lo que su uso simultáneo puede acarrear problemas. Por ejemplo, los paquetes sendmail y postfix no pueden encontrarse instalados a la vez porque realizan la misma función, que es la gestión del correo electrónico del sistema. n Gestor de paquetes: es el programa encargado de gestionar los paquetes de instalación en el sistema, ofreciendo operaciones como: – Instalar, desinstalar y actualizar paquetes. – Gestionar una base de datos con información sobre los paquetes instalados y los disponibles para instalar. – Selección de las fuentes de instalación. – Consulta de información sobre los paquetes instalados y no instalados. – Gestionar correctamente las dependencias. La complejidad en el diseño de los programas y las aplicaciones que se desarrollan actualmente ha hecho que las operaciones para su instalación también se compliquen. De una simple copia de archivos al disco duro se ha pasado a realizar complejas operaciones de instalación y configuración que requieren de programas adicionales para evitar al usuario una pesada y difícil tarea. Hoy en día se dice que un programa de instalación puede ser tan complejo de desarrollar como la aplicación que se instala con él. Existen básicamente dos métodos para instalar programas en Linux: n 70 A través de los paquetes fuente: consiste en utilizar paquetes que contienen los archivos con el código fuente del programa. Por lo tanto, en la operación de instalación del paquete es necesario copiar los archivos, compilarlos a código ejecutable y configurarlos convenientemente. Esto © RA-MA 1 n Introducción a los servicios de red normalmente requiere que el usuario tenga conocimientos avanzados sobre el sistema, aunque la operación de compilación y configuración se realiza ejecutando una orden o un programa. Sin embargo, tiene la ventaja de que el paquete no depende de la distribución o versión de Linux ni tampoco del propio ordenador, por lo que se puede instalar en la mayoría de ellos. También puede ser necesario echar mano de este paquete si no está disponible en los repositorios oficiales. n A través de paquetes precompilados: se utilizan paquetes que previamente han sido compilados en código ejecutable, lo que facilita enormemente las tareas de instalación automática. Sin embargo, es necesario disponer del paquete específico que ha sido diseñado para funcionar en una distribución concreta sobre un equipo con una arquitectura concreta. Algunos de los gestores de paquetes más utilizados actualmente son Dpkg (utilizado por Debian y otras distribuciones derivadas), RPM (es el sistema más extendido que se ha convertido en un estándar para las distribuciones Red Hat, Fedora, SuSE, Mandriva, etc.), tgz (usado por Slackware) y Pacman (usado en la distribución Arch). La instalación y desinstalación de programas en SuSE Linux, Red Hat y Fedora se realiza de una forma muy sencilla gracias al sistema heredado de Red Hat RPM (Red Hat Package Manager o Gestor de Paquetes de Red Hat). RPM es un programa especial que gestiona la instalación y desinstalación de programas, colocando los archivos en su sitio o eliminando los archivos sin que se queden como “basura” y comprobando que todas las operaciones se realizan correctamente. Gracias a este gestor, el usuario no tiene que preocuparse sobre las operaciones internas que realiza el sistema. Las versiones actuales de los gestores de paquetes RPM incluyen la gestión de diferentes fuentes de instalación donde se encuentran almacenados, ya sea desde unidades extraíbles (CD, DVD, etc.) como en direcciones remotas accesibles a través de la red. Existen muchas herramientas que funcionan en entorno gráfico para la instalación y desinstalación de paquetes. Para los sistemas SuSE se puede utilizar la opción “Instalar/Desinstalar software” de YaST, que también incluye un icono titulado “Repositorios de software” que permite indicar al sistema dónde puede encontrar los paquetes para instalación (unidad CD-ROM, carpeta, ruta de red, etc.). 71 SERVICIOS EN RED © RA-MA Figura 1.26. Ventana principal de instalación y desinstalación de programas en OpenSUSE 11.1. Esta herramienta está dividida en varias partes: a la izquierda se ubica el formulario de búsqueda de paquetes y el porcentaje de uso del disco duro. A la derecha se muestra la lista de paquetes que satisfacen el criterio de búsqueda y en la parte inferior se muestra información detallada del paquete seleccionado. La herramienta que gestiona las fuentes de instalación se encuentra en YaST seleccionando “Software || Repositorios de software”. También se puede acceder a ella desde la herramienta de instalación de paquetes (figura 1.26) y seleccionando la opción del menú “Configuración || Repositorios de software”. Para los sistemas Fedora utiliza la aplicación “Añadir/Quitar Software” (en versiones anteriores de Red Hat se llamaba redhat-config-packages, mientras que en las versiones actuales que utilizan el entorno Gnome se instala por defecto gnome-packagekit) cuya ventana principal se muestra en la figura 1.27. También se puede instalar la herramienta Linuxconf, que se incluía por defecto en versiones anteriores de Linux Red Hat (actualmente ya no se incluye con la distribución). 72 © RA-MA 1 n Introducción a los servicios de red Figura 1.27. Ventana principal de instalación y desinstalación de paquetes en Fedora 11. Esta herramienta permite realizar búsquedas de paquetes según diferentes criterios. En la página “Navegar” que se muestra, se ofrecen los paquetes agrupados según su funcionalidad. Otra herramienta que se puede utilizar para la gestión de paquetes es Webmin, que tiene la ventaja de que funciona en cualquier versión de Linux (véase el apartado anterior). También el entorno KDE ofrece la herramienta kpackage, que permite la instalación y desinstalación de archivos RPM en el sistema. Figura 1.28. Ventana de instalación y desinstalación de paquetes de Webmin. Este módulo de Webmin permite consultar los paquetes instalados en el sistema, además de instalar nuevos paquetes desde una fuente de instalación o desde un archivo descargado. 73 SERVICIOS EN RED ¡ EJEMPLO 1.3 Los pasos genéricos de instalación de un programa de la distribución OpenSUSE utilizando la herramienta YaST2 son los siguientes: 1. Entrar en YaST2 y seleccionar el icono “Instalar/Desinstalar software” dentro del grupo de opciones “Software”. Esto mostrará la ventana principal de instalación y desinstalación. 2. En la ventana principal de instalación y desinstalación encontramos dos partes: la de la izquierda, que contiene diferentes filtros de búsqueda de paquetes y la de la derecha, que contiene los paquetes seleccionados individualmente. Los paquetes y grupos de paquetes que se encuentran ya instalados en el sistema están marcados en su casilla de verificación. Para instalar un paquete o un grupo hay que marcar su casilla de verificación (si se desmarca esta casilla, se desinstalan). Así mismo, se puede cambiar el modo de consulta de los paquetes utilizando la opción “Filtro”; por ejemplo, si se marca el valor “Buscar” se puede buscar un determinado paquete de acuerdo a su nombre o a su descripción. Para obtener un listado de paquetes ordenados por grupos se pueden marcar las opciones “Selecciones” o “Grupos de paquetes”. 3. Una vez localizado y marcado el paquete a instalar, pulsamos en el botón “Aceptar”. Si el paquete o paquetes a instalar necesitan de otros paquetes, se nos informará de este hecho, indicándonos si deseamos instalar los paquetes dependientes (aceptaremos la propuesta para no tener problemas). 4. A continuación, la ventana cambia a otra donde se informa sobre el estado de la instalación. Inmediatamente, nos pedirá el disco o discos correspondientes de la distribución OpenSUSE donde se encuentra el paquete o paquetes a instalar. Si hemos especificado una fuente de instalación de red, entonces conectará con esa fuente y descargará los paquetes automáticamente. 5. Finalmente, el instalador de paquetes ejecuta todos los programas necesarios para que los nuevos cambios tengan efecto en el equipo sin necesidad de reiniciarlo. Después, volveremos a la ventana principal del gestor de paquetes, lo que significa que los paquetes ya han sido instalados en el sistema. 74 © RA-MA © RA-MA ¡ 1 n Introducción a los servicios de red EJEMPLO 1.4 Los pasos genéricos de instalación de un programa de la distribución Fedora utilizando la herramienta de gestión de paquetes son los siguientes: 1. Seleccionar la opción “Añadir/Quitar Software” del menú “Aplicaciones” del entorno gráfico Gnome (o la opción que corresponda en KDE). 2. Si estamos utilizando un usuario normal, aparecerá una ventana que solicitará la contraseña del usuario administrador (root). Es posible que esta solicitud de contraseña solamente aparezca cuando se inicie el proceso de instalación de los paquetes seleccionados. 3. En la ventana principal de la herramienta de instalación y desinstalación, aparecerá, en la parte izquierda, un cuadro de texto para buscar paquetes individuales y una lista de grupos de paquetes. Usando uno de estos dos métodos, se pueden localizar el paquete o paquetes que se desean instalar. 4. Una vez encontrados los paquetes que deseamos instalar, los marcamos y pulsamos en el botón “Aplicar” de la parte inferior derecha de la ventana. Aparecerá otra ventana donde se indican las operaciones que se van a realizar y un botón “Continuar” para confirmar. 5. Si los paquetes a instalar incluyen dependencias no satisfechas, el sistema mostrará otra ventana indicando que se van a instalar paquetes adicionales. Si se pulsa en el botón “Detalles” se muestran estos paquetes. 6. Una vez aceptadas todas las operaciones, el paquete es descargado y copiado del repositorio utilizado por defecto, por lo que puede ser necesario introducir los discos de instalación de la distribución. Si alguno de los paquetes están firmados digitalmente para asegurar su autenticidad, mostrará mensajes preguntando si se desean importar estas claves. 7. Una vez instalados los paquetes, se volverá a la ventana principal de instalación y desinstalación de programas en Fedora. Los accesos directos a los programas instalados se integrarán en los menús del entorno gráfico de forma automática. 75 SERVICIOS EN RED © RA-MA La figura 1.29 muestra la ventana que aparece si se detecta algún conflicto después de la selección de los paquetes a instalar. Las operaciones de comprobación de dependencias o conflictos se pueden realizar en cualquier momento utilizando un botón de comprobación de dependencias de la ventana principal de los programas de gestión de paquetes. Figura 1.29. Mensaje ante un conflicto de instalación de paquetes en YaST. En este caso, se está intentando instalar el paquete sendmail que entra en conflicto con el paquete ya instalado postfix. ¡ EJEMPLO 1.5 Veamos un caso práctico de instalación del paquete Webmin en OpenSUSE 11. Los pasos que debemos seguir son los siguientes: 1. Puesto que Webmin no está incluido en la fuente oficial de instalación de OpenSUSE (a partir de la versión 11.1), entonces hay que añadir la fuente de instalación de esta herramienta. Para ello, accedemos a YaST2 y seleccionamos “Software || Repositorios de software”. 2. En la ventana que aparece, pulsamos el botón “Añadir”, seleccionamos “Especificar URL...” en la siguiente ventana y pulsamos el botón “Siguiente”. Seguidamente, especificamos un nombre para este repositorio (por ejemplo, “Webmin”) y especificamos su dirección, que es: http://download.webmin.com/download/yum/ 76 © RA-MA 1 ¡ EJEMPLO 1.5 (cont.) n Introducción a los servicios de red 3. Finalmente, la herramienta comprobará que esa fuente está disponible y descargará la descripción de los paquetes que contiene. Comprobamos que la fuente ha sido añadida y cerramos la herramienta, pulsando en el botón “Aceptar”. 4. A continuación, volvemos a YaST2 y seleccionamos “Software || Instalar/desinstalar software”. 5. En el cuadro de texto “Buscar” ponemos el texto “webmin” y pulsamos el botón “Buscar”. Aparecerá el paquete con este nombre, marcaremos su casilla de verificación y pulsaremos el botón “Aceptar” para instalarlo. 6. Lo siguiente que aparece es una ventana que muestra la licencia de uso de Webmin, si se pulsa el botón “Aceptar” se estará de acuerdo con ella. 7. Otra ventana que aparece tiene que ver con paquetes adicionales que deben ser instalados para que Webmin funcione correctamente. Una vez aceptado esto, se procede con la copia e instalación de los paquetes seleccionados, además de su configuración inicial. 8. Cerrar YaST2 y abrir un programa explorador de Internet utilizando la dirección https://localhost:10000/ (el puerto número 10000 es el usado por defecto en la instalación de Webmin). 9. Debe aparecer una página donde se solicita introducir un usuario y una contraseña. Por defecto, Webmin utiliza el usuario root del sistema y la contraseña que tenga establecida en ese momento para acceder a la herramienta. Por defecto, este entorno se mostrará en idioma inglés, pero se puede cambiar a español si se accede a la página “Webmin || Webmin Configuration || Language”. 10.Recordar que si se instala a partir de ahora algún programa o herramienta que puede ser gestionado por algún módulo estándar de Webmin, es necesario pulsar en la opción “Refrescar módulos” para hacer que éste se encuentre disponible. 77 SERVICIOS EN RED © RA-MA La orden principal de instalación y desinstalación de paquetes RPM en la mayoría de distribuciones GNU/Linux actuales que utilizan este sistema de gestión de paquetes es yum. Con esta orden, se puede instalar o desinstalar un paquete RPM que esté ubicado en una fuente de instalación configurada en el sistema o un archivo RPM descargado manualmente. Además, también es capaz de resolver las dependencias de forma automática con paquetes requeridos. En realidad, todas las herramientas gráficas de instalación de paquetes RPM (véase el apartado anterior) ejecutan internamente la orden yum para instalar y desinstalar los paquetes especificados por el usuario. Las fuentes de instalación de paquetes de yum están definidas en el archivo de configuración yum.conf, que se encuentra habitualmente en la carpeta /etc del sistema. En este archivo, también se especifican parámetros globales requeridos para el buen funcionamiento de yum. Para instalar uno o varios paquetes utilizaremos esta orden, donde paquete1, paquete2, etc., especifican los nombres de los paquetes a instalar: # yum install paquete1 [paquete2 ...] También se puede especificar un nombre de archivo RPM que contiene el paquete y que ha sido descargado o copiado manualmente en la carpeta actual (o en la ruta especificada). Por su parte, para actualizar un paquete ya instalado a una nueva versión se usa la orden: # yum update [paquete] Si no se especifica ningún paquete, entonces yum actualizará a las nuevas versiones de todos los paquetes instalados en el sistema. Para desinstalar uno o varios paquetes se usa esta orden: # yum remove paquete1 [paquete2 ...] En la carpeta /etc/yum.repos.d (su ubicación puede cambiar con respecto a la distribución y versión de GNU/Linux que se utilice) se encuentran todos los archivos con las direcciones de las fuentes de instalación de yum. Para más información sobre el uso de la orden yum, puede consultar las páginas en línea del manual man. En el ejemplo 1.6 se muestra cómo instalar un paquete RPM con yum que ha sido descargado manualmente. 78 © RA-MA ¡ 1 n Introducción a los servicios de red EJEMPLO 1.6 Veamos un caso práctico de instalación del paquete Webmin que ha sido descargado manualmente como paquete RPM para Fedora 11. Los pasos que debemos seguir son los siguientes: 1. Descargar el paquete desde la página oficial de Webmin (véase la bibliografía recomendada) o ejecutar la siguiente orden del intérprete (se puede quitar la barra invertida “\” al final para que esta orden ocupe una sola línea): # wget http://download.webmin.com/download/yum/\ webmin-1.490-1.noarch.rpm 2. Una vez tenemos el archivo descargado en la carpeta actual, podemos instalarlo con la orden yum: # ls webmin-1.490-1.noarch.rpm # yum install webmin-1.490-1.noarch.rpm -nogpgcheck Loaded plugins: refresh-packagekit Setting up Install Process Examining webmin-1.490-1.noarch.rpm: webmin-1.4901.noarch Marking webmin-1.490-1.noarch.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package webmin.noarch 0:1.490-1 set to be updated --> Finished Dependency Resolution Dependencies Resolved ================================================== Package Arch Version Repository Size ======================================================= Installing: webmin noarch 1.490-1 /webmin-1.490-1.noarch 37 M Transaction Summary ================================================== Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) 79 SERVICIOS EN RED ¡ © RA-MA EJEMPLO 1.6 (cont.) Total size: 37 M Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Operating system is Redhat Linux Installing : webmin-1.490-1.noarch Webmin install complete. You can now login to http://localhost.localdomain:10000/ as root with your root password. 1/1 Installed: webmin.noarch 0:1.490-1 Complete! # 3. Se ha utilizado el argumento --nogpgcheck para evitar que yum compruebe la firma digital de este paquete. Como el paquete ha sido descargado manualmente, yum nunca podrá encontrar esta firma digital, por lo que nunca instalaría el paquete si no se usa este argumento. También se puede descargar la firma digital de este paquete con la siguiente orden y después ejecutar yum install sin el argumento --nogpgcheck, así nos podemos asegurar de la autenticidad de este paquete: # rpm --import http://www.webmin.com/jcameron-key.asc 4. Abrir un programa explorador de Internet utilizando la dirección https://localhost.localdomain:10000/ (el puerto número 10000 es el usado por defecto en la instalación de Webmin, mientras que localhost.localdomain es el nombre por defecto que se le da al sistema local en la instalación de Fedora). 80 © RA-MA 1 ¡ EJEMPLO 1.6 (cont.) n Introducción a los servicios de red 5. Debe aparecer una página donde se solicita introducir un usuario y una contraseña. Por defecto, Webmin utiliza el usuario root del sistema y la contraseña que tenga establecida en ese momento para acceder a la herramienta. Por defecto, este entorno se mostrará en idioma inglés, pero se puede cambiar a español si se accede a la página “Webmin || Webmin Configuration || Language”. 6. Recordar que si se instala a partir de ahora algún programa o herramienta que puede ser gestionado por algún módulo estándar de Webmin, es necesario pulsar en la opción “Refrescar módulos” para hacer que éste se encuentre disponible. Algunos sistemas Linux, como Debian, utilizan un sistema avanzado de gestión de paquetes que es equivalente al gestor RPM creado por Red Hat. Este sistema está basado en el uso de los paquetes almacenados en archivos con extensión “.deb”, que contienen los archivos que forman parte del programa, información de su desarrollador, etc. ‘‘ Un estudio sobre la distribución Debian GNU/Linux 2.2 reveló que ésta posee más de 55 millones de líneas de código fuente (la mayoría en lenguaje C). Puede estimarse que, si se hubiera desarrollado como software no libre, hubiera costado 1.900 millones de dólares en el año 2000 (véase las referencias bibliográficas). A diferencia de RPM, los paquetes “.deb” se gestionan a través de dos herramientas que funcionan en niveles diferentes: por un lado está Dpkg, que funciona en un nivel más bajo, mientras que por otro lado está Apt, que funciona en un nivel más alto. Esta jerarquía hace que Dpkg proporcione todo lo necesario para manipular paquetes, mientras que Apt utiliza la anterior para permitir que el usuario trabaje de una forma más cómoda, ofreciendo funciones avanzadas para obtener paquetes desde diferentes lugares o resolver 81 SERVICIOS EN RED © RA-MA dependencias complejas. En los apartados siguientes se explican con detalle estas dos herramientas. El proyecto Debian mantiene, para cada una de las versiones que publica, tres tipos de distribuciones, que se utilizan en las fases de desarrollo: n Estable (stable): es la distribución que se recomienda utilizar, ya que se han depurado todos los errores (o por lo menos todos los conocidos). n De prueba (testing): es utilizada por todos aquellos que quieren disponer cuanto antes de la última versión de Debian, aunque todavía no se han corregido algunos pequeños errores detectados. Cuando los responsables del proyecto corrigen esos errores, esta distribución se convierte en estable. n Inestable (unstable): es la distribución utilizada por los programadores que forman parte del proyecto Debian durante todo el desarrollo activo del sistema. Se llama inestable porque contiene muchos errores que deben ser corregidos. Cada una de las distribuciones Debian que se publican se asocian con un nombre y un número de versión. Hasta ahora, los nombres de las versiones de Debian se han tomado de la película Toy Story de Pixar. Por ejemplo, la versión estable 4.0 se llama Etch, mientras que la versión actual (5.0) se llama Lenny. Como ya se ha comentado, la herramienta Apt conforma un entorno completo de gestión de paquetes que realiza de forma automática la mayoría de operaciones complejas para el usuario. Esta herramienta dispone de muchas órdenes que se pueden ejecutar en el intérprete (véase la tabla 1.4), algunas de ellas deben instalarse por paquetes adicionales. Puede consultar la referencia de órdenes incluida con este libro para obtener una descripción más detallada sobre su uso. 82 © RA-MA 1 n Introducción a los servicios de red Tabla 1.4. Algunas órdenes del gestor de paquetes APT Orden ¡ Descripción apt-cache Muestra los nombres de los paquetes disponibles para instalación. apt-cdrom Permite incluir la unidad de CD-ROM como fuente de instalación de paquetes. apt-config Permite acceder a la configuración de las herramientas APT (archivo apt.conf). apt-file Muestra a qué paquetes pertenecen los archivos indicados. apt-get Permite la instalación, desinstalación y actualización de paquetes. apt-key Gestiona la lista de claves utilizada para autentificar los paquetes descargados para instalar. apt-rpm Se trata de una versión modificada de la herramienta apt que pretende funcionar con el gestor de paquetes RPM. Esta utilidad todavía está en desarrollo y está mantenida por Panu Matilainen desde 2006. auto-apt Instala paquetes de forma automática cuando se ejecuta un programa que necesita un determinado paquete. localepurge Elimina de forma automática aquellos archivos de la documentación del sistema que pertenecen a idiomas no utilizados por los usuarios. EJEMPLO 1.7 Veamos algunos ejemplos de cómo se utilizan las órdenes disponibles en la herramienta Apt. Se han indicado aquéllas que requieren obligatoriamente de privilegios para poder ser ejecutadas. • Para actualizar la base de datos de paquetes disponibles para instalación, nuevas versiones y actualizaciones de paquetes ya instalados, se usa esta orden con privilegios de administrador: # apt-get –u update 83 SERVICIOS EN RED ¡ EJEMPLO 1.7 (cont.) • Para instalar el paquete “xv” se usa esta orden con privilegios de administrador (si existieran dependencias, se resolverían confirmando el mensaje de advertencia que aparece): # apt-get install xv • Para reinstalar el paquete “xv” dañado o actualizarlo con una nueva versión disponible, se usa la siguiente orden con privilegios de administrador: # apt-get --reinstall install xv • Para instalar el paquete “xv” en la última versión todavía de prueba se usa la siguiente orden con privilegios de administrador: # apt-get install xv/testing • Para eliminar el paquete “xv” instalado se usa lo siguiente, siempre con privilegios de administrador (Apt se encargará de eliminar también los paquetes dependientes, después de recibir confirmación): # apt-get remove xv • Para actualizar a una nueva versión de Linux disponible se usa la siguiente orden con privilegios de administrador (debe estar disponible la fuente donde se encuentran los paquetes de la nueva versión): # apt-get –u dist-upgrade • Para eliminar los paquetes temporales que han sido descargados al equipo para ser instalados se usa esta orden con privilegios de administrador: # apt-get clean • Se puede solicitar a Apt que realice una recomendación para instalar, desinstalar y eliminar paquetes, de forma que se tengan en cuenta las sugerencias incluidas con los paquetes, se usa lo siguiente con privilegios de administrador: # apt-get –u dselect-upgrade 84 © RA-MA © RA-MA 1 ¡ EJEMPLO 1.7 (cont.) n Introducción a los servicios de red • Para obtener una lista de los paquetes que pueden ser actualizados a nuevas versiones, se puede usar la siguiente orden: $ apt-show-versions –u • Para obtener una lista de paquetes disponibles para instalar cuyo nombre o descripción cuadre con la cadena de texto “mail”, se usa lo siguiente: $ apt-cache search mail • Si queremos obtener información específica sobre el paquete disponible para instalar “apache2” tenemos que usar la siguiente orden (se mostrará información de todas las versiones disponibles o instaladas): $ apt-cache show apache2 • Para obtener una lista con los paquetes de que depende “apache2” se usa: $ apt-cache depends apache2 • Se puede conocer qué paquetes instalados o disponibles para instalar contienen archivos con determinados nombres: $ apt-file archivo • Finalmente, también se puede obtener una lista de los archivos que contiene el paquete “xv” con esta orden: $ apt-file list xv La herramienta Apt guarda en el archivo sources.list (normalmente ubicado en la carpeta /etc/apt) una lista con las fuentes de instalación desde donde se obtienen los paquetes. Este archivo contiene una línea por cada una de las fuentes disponibles y, para cada una de estas líneas, se indican los siguientes campos separados por espacios en blanco: 85 SERVICIOS EN RED © RA-MA n Tipo de archivos: indica el tipo de archivos que contiene la fuente de instalación: archivos binarios Debian (deb), archivos fuente Debian (debsrc), archivos RPM (rpm), archivos fuente RPM (rpm-src), etc. n URL: dirección de la fuente de instalación, que puede ser de varios tipos: http, ftp, file, ssh, etc. n Argumentos: las opciones indicadas en este campo dependen del tipo de archivos y la distribución utilizada. Por ejemplo, se puede indicar si se trata de un paquete que pertenece a la distribución oficial (main) o está fuera de ella (contrib), o si se trata de un paquete que no está bajo licencia GPL (non-free). Para las distribuciones Debian, aquí se especifica si se trata de una versión estable del sistema (stable), versión estable para fuera de Estados Unidos (stable/non-US), versión de prueba (testing), versión no estable (unstable) o versión experimental (experimental). Para otros sistemas como Ubuntu también se indica el número de versión del paquete. El archivo sources.list se puede modificar para especificar diferentes fuentes de instalación de los paquetes del sistema. También se pueden eliminar los comentarios “#” de las fuentes que disponen de paquetes en código fuente para instalar éstos en vez de los paquetes precompilados. ¡ EJEMPLO 1.8 La instalación de Webmin en Debian es similar a otras distribuciones, aunque se puede realizar de una forma muy sencilla si seguimos estos pasos: 1. Ejecutar la siguiente orden en el intérprete de órdenes para instalar los paquetes dependientes: # apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl 2. Descargar el paquete “.deb” que contiene Webmin desde la página oficial (véase la bibliografía recomendada). 3. Ejecutar la siguiente orden en el intérprete de órdenes en la carpeta donde se encuentre el paquete descargado (el nombre 86 © RA-MA 1 ¡ EJEMPLO 1.8 (cont.) n Introducción a los servicios de red del paquete Webmin puede variar si se ha descargado una versión diferente a la indicada aquí, que es la 1.500): # dpkg --install webmin_1.500_all.deb 4. Abrir un programa explorador de Internet utilizando la dirección https://localhost:10000/ (el puerto número 10000 es el usado por defecto en la instalación de Webmin, mientras que localhost es el nombre por defecto que se le da al sistema local en la instalación de Debian). 5. Debe aparecer una página donde se solicita introducir un usuario y una contraseña. Por defecto, Webmin utiliza el usuario root del sistema y la contraseña que tenga establecida en ese momento para acceder a la herramienta. Por defecto, este entorno se mostrará en idioma inglés, pero se puede cambiar a español si se accede a la página “Webmin || Webmin Configuration || Language”. 6. Recordar que si se instala a partir de ahora algún programa o herramienta que puede ser gestionado por algún módulo estándar de Webmin, es necesario pulsar en la opción “Refrescar módulos” para hacer que éste se encuentre disponible. Si desea obtener información más detallada sobre la herramienta Apt, opciones avanzadas, uso local, mantener paquetes de diferentes versiones, etc., puede consultar las referencias bibliográficas incluidas con este libro. La orden netselect resulta muy útil para decidir qué fuente de instalación en red, de las disponibles, ofrece una descarga de paquetes más rápida y eficiente. Para poder utilizar esta orden la línea de órdenes, primero es necesario instalar el paquete netselect en el sistema, que está disponible en Debian y otras distribuciones derivadas. La orden netselect, cuya descripción completa se puede consultar en la referencia de órdenes incluida con este libro, se usa de esta forma: netselect url1 url2 url3 ... 87 SERVICIOS EN RED © RA-MA Donde url1, url2, etc., especifican las direcciones de diferentes fuentes de instalación desde donde se pueden obtener los paquetes. Esta orden, en su uso básico, devuelve la dirección de la fuente de instalación más rápida, teniendo en cuenta la localización geográfica, topología de las redes, distancia entre los equipos, encaminadores intermedios y congestión de la red. Las mejores fuentes de instalación obtenidas con netselect pueden ser incorporadas después en las herramientas de instalación del sistema. También se puede utilizar la orden netselect-apt que realiza todas estas operaciones de forma automática. Las herramientas Dpkg y Apt conforman un entorno completo que permite la gestión avanzada de los programas y aplicaciones que se instalan en el sistema. Sin embargo, también existen otras herramientas basadas en menús y ventanas que simplifican enormemente el trabajo de los usuarios poco acostumbrados a las órdenes y mandatos. Algunas de ellas funcionan de forma muy parecida a las herramientas YaST o a las herramientas integradas en el entorno gráfico de Fedora. En las figuras 1.30 y 1.31 se muestran algunos ejemplos de estas herramientas, que pueden funcionar bajo un entorno de texto (línea de órdenes) como en el entorno gráfico. Figura 1.30. Ventana principal de la herramienta Aptitude. Aunque ésta se ejecuta en modo texto bajo una línea de órdenes del terminal, facilita enormemente el trabajo de usuarios poco experimentados, ya que dispone de menús y ventanas. 88 © RA-MA 1 n Introducción a los servicios de red Figura 1.31. Ventana principal de la herramienta Gnome App Install. Esta herramienta está disponible en los entornos Gnome para la gestión de paquetes. En versiones anteriores de Debian, se incluía Gnome Apt Software Manager (paquete gnome-apt), aunque en Debian 5 sólo está disponible una versión de prueba de esta herramienta en el momento de escribir este libro. Las distribuciones actuales de Linux disponen de mecanismos muy potentes para la gestión de actualizaciones del sistema. Estas actualizaciones son muy importantes, ya que permiten instalar las nuevas versiones de los paquetes con correcciones a problemas y fallos de seguridad de versiones anteriores. Estos mecanismos se han integrado con los entornos de trabajo para ofrecer a los usuarios mecanismos automatizados. Figura 1.32. Panel superior del entorno gráfico Gnome en Fedora 11. Existe un proceso demonio en el sistema que recoge información sobre nuevas versiones de paquetes instalados y las actualizaciones disponibles. Si se pulsa con el botón derecho del ratón sobre el icono de este proceso, aparecerá un menú desplegable con las opciones “Refrescar actualizaciones” (para que se busquen nuevas actualizaciones), “Ver actualizaciones” (para obtener una lista de los paquetes a actualizar) y “Aplicar actualizaciones” (para instalar esas actualizaciones). Figura 1.33. Opciones del programa de actualización de paquetes en OpenSUSE 11.1. La opción “Añadir/eliminar fuentes de actualizaciones...” se usa para gestionar los repositorios o fuentes de paquetes. 89 SERVICIOS EN RED © RA-MA 1.4.4Gestión e inicio de servicios Cuando un sistema operativo se inicia, debe arrancar también determinados servicios, tanto para uso interno del sistema operativo, como para aquéllos que pueden ser accedidos desde otros equipos. Cada uno de estos servicios es controlado por uno o varios procesos que se inician en el arranque y permanecen en ejecución mientras que el equipo está encendido. Si uno de estos procesos no se inicia o termina, entonces el servicio que ofrece dejará de estar disponible. La mayoría de los sistemas operativos modernos ofrece la posibilidad de arrancar con diferentes configuraciones y servicios, lo que permite recuperar el sistema de algunos fallos producidos. El ejemplo 1.9 muestra un caso genérico (sin entrar todavía en detalles de un sistema operativo concreto) donde ocurre un fallo de este tipo. ¡ EJEMPLO 1.9 Un ejemplo bastante común en el que es necesario el arranque del sistema con una configuración diferente a la utilizada normalmente se produce cuando se instalan en el sistema determinados programas controladores de dispositivo (drivers) que no funcionan correctamente. En ese caso, puesto que el programa controlador es capaz de ejecutar operaciones privilegiadas sobre el sistema, puede ocurrir que su mal funcionamiento pueda tener como resultado el bloqueo del sistema. Este bloqueo se puede producir incluso en el momento de carga de este programa controlador, es decir, ¡en el arranque del sistema! Como consecuencia de esta situación, nos encontramos con que es imposible recuperar el problema porque para eso es necesario acceder a la configuración del equipo y eliminar el controlador dañado, pero eso no es posible ya que el equipo se bloquea en el arranque. Para solucionar esta situación, algunos sistemas operativos incluyen la opción de arranque sin la carga de algunos programas controladores. De esta forma, es posible iniciar el equipo en este modo, eliminar el programa controlador dañado y reiniciar normalmente con el sistema recuperado. 90 © RA-MA 1 n Introducción a los servicios de red 1.4.4.1Modo seguro de Microsoft Windows El modo a prueba de errores que incorporan los sistemas Microsoft Windows permite iniciar el sistema operativo con diferentes configuraciones. Estas configuraciones cargan unos determinados controladores de dispositivos y servicios. Los modos de arranque del sistema no servirán de nada si el daño se encuentra en los archivos del sistema o en el disco duro. Para poder seleccionar los diferentes modos a prueba de errores hay que pulsar la tecla F8 en el inicio del proceso de arranque del sistema, antes de que comience la carga del sistema operativo. Los diferentes modos a prueba de errores que incluyen todas las versiones de Microsoft Windows a partir de 2000 se resumen en la tabla 1.5. Tabla 1.5. Modos a prueba de errores de Microsoft Windows Nombre Descripción Modo seguro Inicia el sistema con los controladores básicos: ratón, monitor con pantalla a baja resolución (VGA), teclado, unidades de disco y servicios predeterminados del sistema. Modo seguro con funciones de red Es igual que el anterior, además de que inicia todos los servicios de red para que el equipo tenga conexión. Modo seguro con símbolo de sistema Es igual que el modo seguro pero no arranca el entorno gráfico, sino una línea de órdenes. Habilitar el registro de inicio o de arranque Se usa para indicar si se activa el registro (log) de todo lo que ocurre cuando se arranca el sistema. Este registro se guarda en el archivo NTBTLOG.TXT de la carpeta de instalación de Windows (normalmente C:\WINDOWS). Habilitar el modo VGA o vídeo de baja resolución Inicia el sistema con todos los servicios pero con el modo de pantalla VGA. Se utiliza cuando hay problemas con el controlador de tarjeta gráfica instalado. La última configuración válida conocida Se usa para iniciar el sistema con los parámetros de configuración del registro anteriores a los últimos cambios realizados en él. De esta forma, se puede iniciar el sistema cuando se ha modificado por error algún valor del registro que impide el arranque. 91 SERVICIOS EN RED © RA-MA Modo de restauración de servicios de directorio Se utiliza solamente en Windows Server 2003 cuando el equipo es controlador de dominio y se desea realizar una restauración del directorio activo con la última copia de seguridad. Modo de depuración Permite inciar el sistema y enviar información sobre el proceso de arranque paso a paso a otro equipo por un cable serie. Deshabilitar el reinicio automático en caso de error del sistema Se utiliza para indicar que el equipo no debe reiniciarse en caso de fallo del sistema. De esta forma, se pueden consultar los mensajes de error que genera el sistema. Deshabilitar el uso obligatorio de controles firmados Si se selecciona, permite instalar controladores de dispositivos que no tienen firma o ésta es incorrecta. Iniciar Windows normalmente Arranca el sistema operativo con todos los programas, servicios y controladores instalados. Otra herramienta que gestiona los procesos en ejecución, denominada Servicios, está disponible desde el menú Herramientas administrativas. Desde ella se puede establecer si un determinado proceso instalado en el sistema se inicia o se detiene, haciendo que el servicio correspondiente esté disponible o no. También se puede utilizar la combinación de teclas Ctrl+Alt+Supr para acceder al Administrador de tareas, que muestra una lista con los procesos en ejecución y las opciones para detenerlos. Esta última opción solamente se recomienda para detener determinados procesos o programas que no están funcionando correctamente o que están bloqueando el sistema operativo. 1.4.4.2Niveles de ejecución en GNU/Linux La mayoría de los sistemas operativos modernos ofrece la posibilidad de arrancar con diferentes configuraciones, lo que permite recuperar el sistema de algunos fallos producidos. El ejemplo más claro lo encontramos cuando instalamos un programa o un controlador de dispositivo (driver) defectuoso que se carga en el arranque del sistema y hace que éste último falle. El usuario puede encontrarse entonces en un callejón sin salida porque el sistema no es capaz de arrancar correctamente para poder solucionar el desaguisado. Los sistemas Linux también disponen de mecanismos que permiten iniciar el sistema con diferentes configuraciones, dependiendo de las necesidades de los usuarios. Estas configuraciones están basadas en los procesos que se activan en el arranque. Los sistemas GNU/Linux son multitarea porque 92 © RA-MA 1 n Introducción a los servicios de red pueden mantener en ejecución muchos programas a la vez (para ver la lista de programas en ejecución en el sistema se puede ejecutar la orden ps –ef). Si se modifican los programas que se inician en el arranque (muchos de ellos no son imprescindibles para el funcionamiento básico del sistema), entonces podemos conseguir que Linux trabaje de forma distinta y ofrezca un diferente conjunto de servicios. Cuando se inicia un sistema GNU/Linux o Unix, el control recae sobre un proceso especial llamado init, que es el primero que comienza su ejecución. Por esta razón, también se le conoce como “el padre de todos los procesos”. Init es un proceso especial sin el cual no se iniciará nunca Linux y que controla el inicio de otros procesos. Por lo tanto, si el usuario desea establecer qué procesos se iniciarán en el arranque, entonces deberá configurar init para que se inicien solamente los procesos que nos interesan. El proceso init permite que el usuario pueda definir diferentes configuraciones, cada una de ellas iniciará un conjunto distinto de procesos. A estas configuraciones se les conoce como niveles de ejecución. Cada nivel de ejecución hace que el sistema se comporte de forma distinta, ya que, como hemos dicho, inicia un conjunto de procesos distintos. De esta forma, el usuario puede seleccionar sobre qué configuración o nivel de ejecución va a iniciar el sistema. Los niveles de ejecución predefinidos en la mayoría de las versiones de Linux son los siguientes: n 0 (Parada de sistema): se utiliza para apagar el equipo. n 1 (Modo monousuario): se accede al sistema en modo monousuario (es decir, solamente puede entrar un único usuario al sistema en un momento dado) sobre una consola de línea de órdenes y sin servicios de red. n S (Modo monousuario): igual que el modo 1 pero con el teclado configurado en idioma inglés. n 2 (Modo multiusuario local sin red): se accede al sistema sobre una consola de línea de órdenes y sin servicios de red. Varios usuarios pueden acceder al mismo tiempo al sistema. n 3 (Modo multiusuario completo con red): se accede al sistema sobre una consola de línea de órdenes con todos los servicios. 93 SERVICIOS EN RED © RA-MA n 4 (libre, es decir, no utilizado): este nivel no está configurado, así que puede definirse a gusto del usuario. n 5 (Modo multiusuario completo con red y entorno gráfico): éste es el nivel por defecto que inicia el sistema con todos los servicios y en modo gráfico. n 6 (Reiniciar el sistema): se utiliza para reiniciar el equipo. Existe también otro nivel de ejecución que no se comporta como tal y que se llama “B” (Boot o de arranque). Los programas que se inician en ese nivel de ejecución solamente están activos cuando el sistema está arrancando y se desactivan una vez que éste es operativo. Por ejemplo, el proceso boot.sysctl se usa para establecer los parámetros por defecto que va a utilizar el sistema una vez que ha arrancado. Estos parámetros se establecen en el archivo de configuración /etc/sysctl.conf. Aunque los niveles de ejecución anteriores se comportan por defecto como se ha indicado, es posible que el usuario los configure de forma distinta de acuerdo con sus necesidades. Por ejemplo, se puede hacer que el sistema inicie el modo gráfico en el nivel 3 si se indica a init que inicie el proceso que lo gestiona para ese nivel (por ejemplo, el proceso kdm del escritorio KDE). Suele ser costumbre entre los administradores del sistema modificar los niveles de ejecución 2 y 4 a su gusto, mientras que suelen dejar los niveles S, 1, 3 y 5 con los servicios por defecto. De esta forma, no se pierden configuraciones por defecto de los niveles más utilizados, permitiendo configuraciones personalizadas. Es posible modificar cualquier nivel de ejecución, pero se recomienda dejar intactos los niveles S y 1 ya que resultan muy útiles para recuperar el sistema ante fallos graves. El proceso init mantiene su configuración básica en el archivo inittab, que normalmente se encuentra dentro de la carpeta /etc del sistema. En los siguientes apartados se explica cómo configurar el proceso init para modificar sus valores por defecto. Para seleccionar el nivel de ejecución que se va a utilizar en el arranque se puede hacer de tres formas: n 94 Editar el archivo /etc/inittab, usando el usuario root y un programa de edición de textos, buscar una línea con el texto “id:5:initdefault:” y sustituir el número 5 por el nivel de ejecución que deseamos sea el nuevo nivel por defecto. La próxima vez que se inicie Linux arrancará en ese nivel de ejecución. © RA-MA 1 n Introducción a los servicios de red n Si el gestor de arranque instalado es Lilo, hay que seleccionar la opción de arranque con Linux que nos interese y después escribir “init n” en el cuadro de texto de la parte inferior (donde n es el nivel de ejecución que nos interese). Este método no cambia el nivel de ejecución por defecto, aunque nos permite especificar cualquier nivel sin tener que arrancar para luego reiniciar. n Si el gestor de arranque instalado es Grub, entonces hay que seguir estos pasos: 1. Seleccionar la opción de arranque que queremos utilizar y pulsar la tecla E. 2 . Seleccionar la línea que comienza por la palabra “kernel” y volver a pulsar la tecla E. 3 . Escribir al final de la línea el nivel de ejecución con el que queremos arrancar (por ejemplo, “S”) y pulsar la tecla INTRO. 4 . Volver al menú principal de Grub, seleccionar la opción editada y pulsar INTRO para iniciarla en el nivel de ejecución que hemos establecido. n Utilizando una herramienta de gestión de los niveles de ejecución en entorno gráfico o en modo texto. Por ejemplo, desde el entorno gráfico se puede utilizar la herramienta YaST de OpenSUSE, accediendo al icono “Servicios del sistema (niveles de ejecución)” dentro del grupo “Sistema” (véase la figura 1.34). Figura 1.34. Ventana principal de configuración de los niveles de ejecución de OpenSUSE 11.1 en YaST. En la ventana del modo experto, se puede cambiar el nivel de ejecución por defecto del sistema dentro de la lista desplegable titulada “Establecer el nivel de ejecución predeterminado en el arranque a:”. La próxima vez que se inicie Linux arrancará en ese nivel de ejecución. 95 SERVICIOS EN RED © RA-MA Es posible cambiar en cualquier momento de un nivel de ejecución a otro, utilizando la orden init, pero para ello hay que disponer de privilegios de root. Hay que utilizar la orden init especificando el nivel de ejecución al que se desea cambiar (si no se especifica ningún nivel, la orden init nos devuelve el número de nivel de ejecución en el que nos encontramos en ese momento). Por ejemplo, la siguiente orden cambia el nivel de ejecución actual al 3: root@linux:~# init 3 Por defecto, Linux ya establece qué procesos se van a iniciar en un determinado nivel de ejecución. Normalmente es el nivel 5 el que más procesos debe iniciar, por lo que el arranque es un poco más lento que en otros niveles. Sin embargo, cuando disponemos de privilegios de root, tenemos derecho a cambiar esta configuración, es decir, podemos establecer qué procesos se van a iniciar en un nivel de ejecución concreto. La forma más sencilla de hacer esto es utilizando las herramientas de entorno gráfico o en modo texto, aunque también se puede hacer manualmente accediendo a los archivos situados en la carpeta /etc/init.d/, una operación que no es recomendable si no se dispone de conocimientos avanzados sobre el sistema. Para establecer qué procesos deseamos que se inicien en un determinado nivel de ejecución en openSUSE debemos acceder a la herramienta “Servicios del sistema (niveles de ejecución)”, dentro del grupo “Sistema” de YaST. En la ventana principal que aparece (véase la figura 1.34) debemos pulsar en el botón de opción “Modo experto” ya que, de lo contrario, solamente podremos configurar el nivel de ejecución actual (como sabemos, es el 5 por defecto). En la ventana de configuración de la figura 1.34 podemos observar que aparece una tabla en la que cada fila es un proceso. En cada columna se muestra información sobre ese proceso, como si están activos en este momento y el nivel de ejecución en el que se van a iniciar (B, S, 0, 1, 2, 3, 5 o 6). Se puede marcar o desmarcar un proceso para un nivel de ejecución, lo que hará que se inicie o no en ese nivel. El nivel de ejecución 4 no aparece ya que se encuentra deshabilitado en el archivo /etc/inittab. Como se ha explicado anteriormente, los procesos cuyo nombre comienza por “boot” y que están marcados en el nivel “B” son aquéllos que se inician en el arranque pero finalizan su ejecución una vez que el sistema ha completado esta operación. Las opciones que aparecen en la ventana de la figura 1.34 son: 96 © RA-MA 1 n Introducción a los servicios de red n El servicio se iniciará en los siguientes niveles de ejecución: aquí se indica, para el servicio seleccionado, en qué niveles de ejecución se va a iniciar. Para ello, hay que marcar o desmarcar las casillas de verificación B, S, 0, 1, 2, 3, 5 o 6. n Iniciar/Detener/Actualizar: se utiliza para iniciar o parar el servicio seleccionado en este momento. También permite “actualizar” el servicio, es decir, pararlo y volverlo a iniciar con el propósito de activar los cambios que hayamos podido realizar en su configuración. n Establecer/Restablecer: se utiliza para establecer el servicio seleccionado o todos los servicios a sus valores por defecto, es decir, a la configuración por defecto que se establece en la instalación de Linux. n Cancelar: sale del programa de configuración de niveles de ejecución sin guardar ningún cambio realizado. n Aceptar: sale del programa de configuración de niveles de ejecución y guarda todos los cambios realizados. Para modificar los procesos que se inician automáticamente en un determinado nivel de ejecución en la distribución Fedora de Linux, se puede utilizar la herramienta del entorno gráfico “Configuración del servicio” (figura 1.35), que es accesible desde la opción “Servicios” del menú principal del entorno gráfico (en Gnome se encuentra en “Sistema || Administración”. Figura 1.35. Ventana principal de configuración de servicios en Fedora 11. En la opción del menú “Servicio || Personalizar” se puede seleccionar el nivel de ejecución a modificar. En la lista de la izquierda aparecen los procesos que están iniciados en el nivel de ejecución seleccionado, mientras que en los cuadros de la derecha aparece su estado (cuando se selecciona alguno de ellos). Los botones “Iniciar” y “Detener” se usan para iniciar o detener el servicio seleccionado, respectivamente. 97 SERVICIOS EN RED © RA-MA Las distribuciones Fedora y Red Hat incluyen por defecto en la instalación del sistema la orden chkconfig, que permite gestionar de una forma sencilla los servicios que se inician en determinados niveles de ejecución. Para obtener una descripción completa del uso de esta orden, puede consultar el apéndice A con la referencia de órdenes de Linux, la ayuda en línea incluida con la distribución Linux o las páginas del manual (man). Otras herramientas gráficas que permiten la configuración de los procesos que se van a iniciar en el arranque pueden ser ksysv, ntsysv, rcconf o serviceconf, que se pueden iniciar desde la línea de órdenes. Este tipo de utilidades no suelen instalarse por defecto en las distintas distribuciones de Linux, aunque normalmente se incluyen con ellas. Figura 1.36. Ventana principal de rcconf sobre Debian 5. Cuando se ejecuta esta herramienta sin argumentos, muestra una lista con los procesos iniciados y aquéllos que se pueden poner en marcha en el nivel de ejecución actual. También se incluyen las opciones correspondientes en las herramientas Linuxconf (opción “Configuración || Servicios misceláneos”) o Webmin (opción “Sistema || Configuración Init de SysV”). 98 © RA-MA 2 1 n Introducción a los servicios de red RESUMEN DEL capítulo Las redes de comunicaciones se utilizan para el intercambio de información a pequeñas o largas distancias. Estas redes también pueden ser utilizadas para el intercambio de información digital a través de ordenadores. Cada una de estas redes puede ofrecer una serie de servicios o unas capacidades de transmisión que están íntimamente relacionados con la tecnología con la que se han construido. Actualmente, Internet es una de las redes de comunicación más importante porque permite la conexión a nivel mundial de otras redes más pequeñas. Internet nació a partir de ARPANET y actualmente funciona gracias a la arquitectura de protocolos TCP/IP, que está en constante actualización y renovación tecnológicas. Estas mejoras se ponen en marcha gracias a la publicación de los RFC, que son publicados por el Comité de Actividades de Internet (IAB). Actualmente existen dos versiones de uno de los protocolos más importantes de Internet: IPv4 e IPv6. Estos protocolos definen el formato de direcciones que deben asignarse a los equipos, además del formato de los mensajes que se envían por la red. Para una comunicación adecuada de un equipo a través de Internet, necesita tener correctamente configurada su dirección IP, máscara de red, puerta de enlace o pasarela predeterminada y direcciones IP de los servidores de nombres. Los equipos conectados a Internet ofrecen una serie de servicios para todos aquellos que se conecten a través de sus equipos. Estos servicios están basados en el modelo cliente-servidor, donde existe un equipo que solicita el acceso al servicio y otro que lo autoriza y facilita los recursos que se pidan. Los servicios ofrecidos por un sistema de comunicación pueden ser de alto nivel o de bajo nivel, dependiendo de si las funciones que realizan están más cercanas a las necesidades de los usuarios o a un buen funcionamiento de la red subyacente. Los servicios más utilizados actualmente en Internet son: transferencia de archivos (copia de archivos y carpetas entre equipos), el correo electrónico, la mensajería instantánea, el acceso remoto, y el acceso a información en formato de hipertexto (World Wide Web). 99 SERVICIOS EN RED En los sistemas operativos modernos se puede encontrar una gran cantidad de herramientas que facilitan la configuración y explotación de los servicios disponibles. Para los sistemas Microsoft Windows se usan las herramientas Administración del servidor, Administración de equipos, DHCP, DNS, Servicios, etc. En los sistemas GNU/Linux podemos encontrar herramientas como el Panel de control, Herramientas de administración, YaST, Webmin o Linuxconf. Los sistemas operativos también ofrecen herramientas para la instalación y desinstalación de servicios. En Microsoft Windows se utiliza la opción “Agregar o quitar programas” o “Programas y características”, que están disponibles en el Panel de control. Por su parte, en los sistemas GNU/ Linux se utilizan los gestores de paquetes, como RPM o Dpkg, que se pueden gestionar desde las correspondientes herramientas de entorno gráfico o línea de órdenes, como YaST, yum o apt. Un sistema operativo es un gestor de procesos, es decir, un conjunto de programas que se encuentran en ejecución. Cada uno de estos procesos permanece en ejecución para controlar y permitir el acceso a determinados servicios. Las herramientas del sistema operativo también permiten decidir qué procesos se inician en el arranque del sistema o cuáles se pueden iniciar o parar en un momento determinado. En los sistemas Microsoft Windows se usa el Menú de Inicio en modo a prueba de errores y la herramienta de gestión de Servicios, mientras que en los sistemas GNU/Linux se gestionan a través de los niveles de ejecución. 100 © RA-MA © RA-MA 2 1 n Introducción a los servicios de red ejercicios propuestos n 1. Define los siguientes conceptos aparecidos en el capítulo: • Servicio. • Terminal remoto. • Puerta de enlace o pasarela por defecto. • Encaminador. n 2. Si tienes conexión a Internet en casa a través de un módem o router RTC, ADSL o cable, busca alguna herramienta para consultar la dirección IP que te ha asignado tu proveedor de acceso. Realiza esta consulta varios días después para comprobar si esa dirección ha cambiado. n 3. Accede a una página de Internet donde puedas encontrar información sobre encaminadores, cómo se instalan, posibilidades de conexión, etc. Elabora una lista con las características más importantes que hayas encontrado. los puertos abiertos en tu equipo. ¿Podrías identificar qué servicios ofrecen los puertos abiertos? n 7. Utiliza alguna herramienta de gestión de paquetes de GNU/Linux para comprobar si existe algún paquete instalado en el sistema con el nombre “tcpdump”. En caso afirmativo, indica su versión. n 8. ¿Qué ocurre si intentas instalar el paquete koffice-wordprocessing en el sistema? ¿Por qué? Realiza todas las operaciones necesarias para instalar este paquete en GNU/Linux. n 9. Desinstala el paquete kdegames (si dispones del entorno KDE instalado en el sistema) usando alguna herramienta de gestión de paquetes. Comprueba después que el paquete ha sido desinstalado. n 10. n 4. Busca en la bibliografía o en Internet información sobre los estándares de comunicación de telefonía móvil y las generaciones que se han definido. n 5. ¿Cuáles crees que son las claves del crecimiento y difusión tan elevado que ha tenido Internet en nuestra sociedad? ¿Crees que ha cambiado o cambiará nuestros hábitos? n 6. Utiliza un programa de exploración de puertos para consultar Instala un nuevo gestor de escritorio que no tengas en tu equipo GNU/Linux (por ejemplo, Gnome, KDE, Xfce, Enlightenment, etc.) utilizando una herramienta gráfica de gestión de paquetes. Comprueba finalmente que ese escritorio ha sido instalado iniciando una sesión en él. n 11. Obtén el número de procesos que se ejecutan en el sistema para los niveles de ejecución S, 1, 2, 3 y 5. ¿Qué número indica el proceso init para cada uno de esos niveles? 101 SERVICIOS EN RED n 12. Comprueba qué ocurre cuando pulsas la combinación de teclas Ctrl+Alt+Supr desde una consola de línea de órdenes del sistema. Modifica el archivo /etc/inittab para que el equipo se apague con esa combinación de teclas modificando la línea que comienza por:ca::ctrlaltdel: 2 Un RFC es: a)Un estándar sobre el funcionamiento de los servicios de Internet. b)Un documento de descripción de un servicio. c)Una norma que siguen los fabricantes. d)Todas son ciertas. 2 El modelo cliente-servidor: a)Es utilizado por todos los servicios que tienen las redes de comunicaciones. b)Define unos equipos que funcionan exclusivamente como clientes. c)Requiere de la configuración de una serie de equipos como servidores. d)Todas son ciertas. El sistema de correo electrónico: a)No permite enviar un mismo mensaje a varios destinatarios a la vez. 102 n 13. Indica los pasos a seguir para instalar o actualizar el navegador Mozilla Firefox en tu sistema GNU/ Linux. test de conocimientos 1 3 © RA-MA b)Requiere que el usuario esté conectado para recibir los mensajes. c)Se basa en el servicio IRC. d)Ninguna es cierta. 4 El sistema WWW se basa en: a)La consulta de información mediante órdenes. b)La transferencia de páginas de hipertexto. c)Los servicios de búsqueda como Google. d)b y c son ciertas. 5 TCP/IP es: a)La dirección IP del equipo y la máscara. b)La puerta de enlace predeterminada. c)Un conjunto de servicios para realizar las comunicaciones. d)a y b son ciertas. © RA-MA 1 n Introducción a los servicios de red 6 8 7 9 Una dirección IPv6: a)Se usa como complemento a IPv4 para ampliar el rango de direcciones disponibles. b)Todos los equipos de Internet deben tener asignada una. c)Tiene un menor rango de direcciones que IPv4. d)Ninguna es cierta. Un servidor: a)Recibe las respuestas de los clientes para establecer conexiones. b)Es el encargado de iniciar las peticiones. c)Permanece a la espera de recibir peticiones. d)No requiere de una potencia de cálculo elevada. La instalación de un programa en GNU/Linux se realiza: a)A través de un programa de gestión de paquetes. b)Desde un archivo ejecutable con extensión “EXE”. c)Desde la herramienta Programas y características. d)a y b son ciertas. Por defecto, el nivel de ejecución 3: a)Inicia el servicio de entorno gráfico. b)Inicia los servicios de red. c)Permite el acceso multiusuario. d)b y c son ciertas. 103