Source: http://docplayer.es/1245870-Sirviendo-web-desde-la-escuela.html
Timestamp: 2017-08-22 23:02:35+00:00

Document:
Sirviendo web desde la escuela - PDF
Sirviendo web desde la escuela
Download "Sirviendo web desde la escuela"
Martín Córdoba Herrero
1 Sirviendo web desde la escuela Antonio Saorín José J. Grimaldos Ginés Ángel Esteban José Antonio Morgado
2 María del Mar Lera José Luis López-Barajas Sara Redondo
3 Sirviendo web desde la escuela por Antonio Saorín, José J. Grimaldos, Ginés Ángel Esteban, José Antonio Morgado, María del Mar Lera, José Luis López-Barajas, y Sara Redondo Copyright 2003 los autores Se permite la copia exacta y la distribución de este artículo en cualquier medio y soporte citando la procedencia, conforme a los términos de la licencia de documentación libre GNU. (http://www.gnu.org/copyleft/fdl.html)cualquier duda, sugerencia, comentario, nota o discrepancia será bien recibida por los autores. Usted es libre para usar este documento bajo su propio criterio, por lo tanto, los autores declinan cualquier responsabilidad ante cualquier daño, directo o indirecto, que pudiera resultar del uso de la información contenida en este documento. Historial de revisiones Revisión Revisado por: jjg Redacción inicial en DocBook SGML usando el editor Emacs
4 Tabla de contenidos 1. Introducción Conceptos de redes Preliminares Protocolo TCP/IP Direcciones IP Construyendo nuestro ejemplo Bautizando las máquinas Preparando nuestro servidor Resolución de nombres DNS en nuestras máquinas Enmascaramiento Sobre los puertos El sistema NAT.Enmascaramiento y filtrado de direcciones IP Filtrado de paquetes Enmascarando y filtrando con gato Sirviendo web Introducción El servidor web Apache Instalación Configuración Sirviendo ficheros Protocolo de transferencia de ficheros. FTP Características de FTP El servidor ProFTPD Configuración de ProFTPD El servidor proxy Consideraciones sobre la caché El proxy SQUID Instalación Configuración de SQUID Puerto para SQUID Tamaño de caché Vida en el caché Controles de acceso Redireccionamiento a través de SQUID Ajustes en el router ADSL ADSL y Linux La instalación del router Nuestro router a medida Cambio de multipuesto a monopuesto Acceso a través del puerto serie A través de administración web...26 iv
5 8. Rentabilizando la configuración Precauciones de seguridad Creando los usuarios Cuotas de disco Directorios personales...28 v
6 Capítulo 1. Introducción Este documento surge fruto de un grupo de trabajo en el I.E.S. Cura Valera (http://www.iescuravalera.org) de Huércal- Overa integrado por profesores del mismo, con la intención de elaborar una pequeña guía que permita a cualquier centro educativo, conectado a la red Internet mediante ADSL, servir sus páginas web desde una máquina local. Este grupo de trabajo quedó registrado con el código 02403GT120 en el Centro de Profesores Cuevas-Olula (http://averroes.cec.junta-andalucia.es/~cepal3) durante el curso escolar 2002/2003 Pretendemos documentar una experiencia llevada a cabo en nuestro centro y, a través de ella, conseguir que todo aquel interesado cuente con un material que le permita soslayar muchas de las dificultades con que nos encontramos nosotros inicialmente al comienzo de nuestro proyecto. No pretende, en ningún caso, ser una documentación de referencia para ninguno de los apartados tratados en él, muchos de los cuales poseen ya varios volúmenes monográficamente dedicados. Procuraremos, sin embargo, dejar las pistas necesarias para un estudio más detallado y profundo cuando el lector así lo requiera. Pensamos, además, que esta pequeña guía sirva para sugerir las enormes posibilidades que brinda la utilización de software libre en los entornos educativos, frente a la realidad actual, donde en la mayoría de casos se utiliza y se forma al alumnado en sistemas propietarios, fomentando así una situación nada deseable en el mundo de la educación, en particular, de la educación pública. Aunque suponemos, al menos, cierta inquietud y cierta familiaridad con el mundo de la informática, trataremos de mostrar los procedimientos de la forma más sencilla posible con objeto de que cualquier lector interesado sea capaz de seguirlos, de modo que, pedimos perdón por aquellas obviedades o presunciones en que podamos incurrir. 1
7 Capítulo 2. Conceptos de redes 2.1. Preliminares No hace tanto tiempo que pensar en una red de ordenadores era poco menos que un sueño. Estábamos tan bien con nuestra computadora personal o laboral, éramos capaces -creíamos- de procesar texto, manejábamos nuestras bases de datos, imprimíamos vistosos carteles ahítos de alardes tipográficos,... en fin. Hoy día, en cambio, no se concibe una computadora aislada. La más modesta dispone de un artefacto capaz de comunicarse con otras a través del hilo telefónico. Hoy en día tenemos que estar en red. Consideraremos una red como un conjunto de ordenadores capaces de comunicarse entre sí, bien directamente, bien a través de otros. 1 Como en toda comunicación, para que ésta sea posible, necesitamos un idioma que sea comprendido por todos los integrantes, en este caso, los ordenadores de la red. En este contexto el idioma es el protocolo de comunicación 2.2. Protocolo TCP/IP Muchos son los protocolos usados desde siempre para compartir datos entre diferentes ordenadores, sin embargo, desde la aparición de la red Internet, todo parece normalizarse en torno al TCP/IP. 2 Para ser exactos no se trata de un protocolo sino de un conjunto de protocolos, aunque este tipo de disquisiciones se escapan al objetivo de esta guía. Para un estudio más detallado de las redes debería consultarse la Guía de Administración de Redes con Linux (http://es.tldp.org/manuales-lucas/garl/garl-1.0/) de Olaf Kirch, que se encuentra traducida al castellano en la web del proyecto LUCAS. (http://es.tldp.org) Este protocolo tiene su origen en una red experimental desarrollada por el ejército de los Estados Unidos desde 1969 y que estuvo operativa en 1975 conocida como ARPANET, dando lugar a Internet en 1990 y adoptando, consecuentemente, el protocolo TCP/IP en todos sus nodos. La novedad que aportaba esta forma de comunicación es que, hasta entonces, todos los protocolos estaban diseñados para enviar o reenviar ficheros completos, sin embargo el TCP fragmenta los datos en pequeñas unidades 3 que son enviados inmediatamente al nodo de destino que es el encargado de reensamblarlos. Esta característica supone una complejidad para el software de comunicación pero permite la ejecución de aplicaciones interactivas a través de la red. Pues bien, ya tenemos idioma Direcciones IP Cada ordenador conectado a una red necesita estar perfectamente identificado de forma que los paquetes que lo tengan como destinatario sean capaces de localizarlo de forma inequívoca. Esta es la misión del protocolo IP. Actualmente las direcciones IP 4 están compuestas por un número único de 32 bits que se asigna a cada nodo de la red, o más exactamente, a cada interfaz, normalmente la tarjeta de red. Este número suele representarse en notación decimal para cada octeto o byte (8 bits) con un rango de 0 a 255. Desde los comienzos de Internet se clasificaron, tal vez arbitrariamente, las redes en diferentes tipos según el número de nodos que las componían, así tenemos: 2
8 Capítulo 2. Conceptos de redes Redes de clase A, identificadas con el primer octeto de la dirección IP. Por lo tanto, pueden albergar, cada una, 16 millones de nodos, aproximadamente. Redes de clase B, identificadas con los dos primeros octetos de la dirección IP.Constan de unos nodos cada una. Redes de clase C, identificadas con los tres primeros octetos de la dirección IP, reservando el último octeto para identificar el nodo, pudiendo estar formadas por 254 equipos. Por lo tanto, los cuatro octetos de la dirección IP de cada ordenador, junto a la máscara de red, identifican perfectamente al equipo y a la red de la que forma parte. Esta máscara de red tiene como misión "ocultar" los octetos correspondientes a la identificación de la red y dejar "visibles" los usados para identificar el nodo. Si las máquinas de nuestra red deben conectarse a otras redes públicamente, hemos de disponer de nuestro propio número de red asignado por el organismo regulador de la direcciones públicas de Internet, el NIC (Network Information Center), mientras que si no se conectan directamente a otras redes, es decir, si no disponemos de una red con direcciones públicas, podemos asignar los números de cada nodo libremente, aunque lo más adecuado es utilizar un número de red reservado para este propósito. El rango reservado para cada tipo de red es: Tipo de red Máscara de red Dirección desde Dirección hasta A B C Construyendo nuestro ejemplo Supongamos un centro que dispone de un aula de informática con quince ordenadores 5, dos en secretaría, uno en dirección, cinco en la sala de profesores o departamentos y un equipo dedicado a servir conforme al propósito de esta guía. Lógicamente necesitaremos una dirección de red reservada de tipo C. Por ejemplo, y todos nuestros hosts tendrán como máscara de red Es normal reservar la dirección para el equipo que actuará como puerta de enlace o gateway hacia el exterior, mientras que la dirección se reserva como broadcast o dirección de difusión. 6, por lo tanto, nuestra red podría estar formada por 254 ordenadores. Todos tendían como máscara de red que ocultaría los tres primeros octetos correspondientes a la dirección de red. El ordenador dedicado a puerta de enlace con la Internet necesita tener instaladas dos tarjetas de red, una para comunicarse con nuestra propia intranet 7 y la otra para salir al exterior que recibirá como IP la que tenga asignada el módem-router de ADSL, para nuestros propósitos vamos a considerar que la IP y la máscara de red es la que corresponde a nuestro router Bautizando las máquinas Para asignar la dirección IP a cada máquina es aconsejable seguir algún criterio identificativo, por ejemplo, a partir del 100, podemos situar los ordenadores del aula de informática, así pues, sus direcciones serían hasta mientras que podemos reservar las diez primeras para equipos que desempeñan tareas de servidor, como nuestra máquina que hace de puerta de enlace, un servidor de impresión, etc. Los ordenadores de los departamentos situarlos por debajo del 100 y los de secretaría por encima de 200, de esta manera sería más sencillo mantener un registro de direcciones y evitar conflictos en nuestra red. 3
9 Capítulo 2. Conceptos de redes También debemos bautizar a nuestras máquinas con nombres amigables y cariñosos, de la misma forma que sería una falta de sensibilidad llamarle a nuestro perro, miperro. No obstante, es aconsejable asignar los nombres de equipo con una referencia ordinal, por si en un futuro, éstos se incrementaran. Así pues con estas consideraciones, nuestra intranet local podría quedar estructurada de la siguiente forma: Equipo Nombre Dirección IP Máscara de red Servidor gato Servidor gato Dirección dire Secretaría secre Secretaría secre Aula Informática, n o i infoi i Hemos nombrado ordinalmente a los equipos de secretaría y del aula de informática, pues es de esperar -y de desearque puedan incrementarse. Al equipo que actuará como servidor hemos optado por llamarlo gato para que nos recuerde su función como gateway, mientras que el de dirección lo hemos bautizado sencillamente como dire Preparando nuestro servidor Empezaremos por activar las dos tarjetas que hemos instalado en nuestro servidor, es decir, vamos a configurar las interfaces de red para que cada una tenga la dirección IP adecuada y sea capaz de cumplir con su misión. En linux, las interfaces de red tienen un nombre secuencial eth0,eth1,... según la cantidad de tarjetas ethernet que tengamos instaladas. En nuestro caso, la primera tarjeta (eth0) la destinaremos a las comunicaciones con nuestra intranet y le asignaremos, por lo tanto, la IP , mientras que la segunda (eth1) la dedicaremos a comunicarse con Internet y le asociaremos la IP que hemos convenido como dirección pública del router. root]# ifconfig eth netmask up root]# ifconfig eth netmask up Esto activaría nuestras tarjetas de red. Si queremos comprobar que todo ha funcionado podemos consultar la configuración ejecutando: root]# ifconfig -a Obteniendo una información con estas características: eth0 Link encap:ethernet HWaddr 00:04:76:EA:A3:61 inet addr: Mask: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:9 Base address:0xd400 eth1 Link encap:ethernet HWaddr 00:04:76:FA:B3:61 inet addr: Mask: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 4
10 Capítulo 2. Conceptos de redes RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:10 Base address:0xd200 lo Link encap:local Loopback inet addr: Mask: UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:244 errors:0 dropped:0 overruns:0 frame:0 TX packets:244 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:15380 (15.0 Kb) TX bytes:15380 (15.0 Kb) Los dos primeros bloques corresponden a la información relativa a nuestras dos tarjetas de red mientras que el último refleja la interfaz de loopback, siempre presente en todo sistema linux aunque no se posea ningún dispositivo de red. Si no disponemos de una conexión a Internet mediante ADSL, sino que lo hacemos a través de un módem, todo lo dicho para la tarjeta de red eth1 quedaría sin efecto y en su lugar deberíamos ver cuando estamos conectados: eth0 Link encap:ethernet HWaddr 00:04:76:EA:A3:61 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:9 Base address:0xd400 lo ppp0 Link encap:local Loopback inet addr: Mask: UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:264 errors:0 dropped:0 overruns:0 frame:0 TX packets:264 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:16678 (16.2 Kb) TX bytes:16678 (16.2 Kb) Link encap:point-to-point Protocol inet addr: P-t-P: Mask: UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:25 errors:0 dropped:0 overruns:0 frame:0 TX packets:31 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:7943 (7.7 Kb) TX bytes:1612 (1.5 Kb) 2.5. Resolución de nombres Cuando enviamos un paquete de datos a un ordenador, es necesario que llegue a su destino. Si usamos su dirección IP no presenta mayor problema, sin embargo los números de 32 bits usados para identificar un equipo no son fáciles de recordar mientras que los ordenadores, como hemos visto en la Sección 2.4.1, suelen tener nombres más intuitivos 5
11 Capítulo 2. Conceptos de redes para el ser humano. La aplicación que se encarga de traducir nombres de máquina a direcciones IP se conoce como Sistema de Resolución de Nombres o DNS (Domain Name System). En una red pequeña no resultaría difícil mantener una tabla de resolución de nombres almacenada en el fichero /etc/hosts de cada máquina que asociara a cada dirección IP el nombre de esa máquina, sin embargo en toda Internet, fácilmente se comprende que no sería una buena solución, por ello en 1984 se diseñó y adoptó un sistema nuevo también llamado DNS que consiste básicamente en dividir los nombres de máquina en zonas o dominios y delegar en unos servidores de nombres que mantengan toda la información acerca de una zona. Por ejemplo, cuando cursamos una petición o enviamos un paquete de datos para la máquina hispalinux.es el sistema de resolución de nombres interroga a un servidor que mantenga la zona de España (.es) y éste le indicará cúal es la dirección IP que corresponde al ordenador con ese nombre. Bien, dicho así parece sencillo, aunque en realidad es un sistema bastante complejo y con muchos matices pero que escapan totalmente de nuestros propósitos DNS en nuestras máquinas Todos nuestros equipos van a necesitar resolver nombres de máquinas, tanto para navegar por internet como, tal vez, localmente en nuestra propia red para algunos servicios que tengamos implementados en las máquinas locales. En el caso local, el fichero responsable de la resolución de nombres es etc/hosts y su estructura es simplemente una tabla conteniendo en cada entrada la dirección IP y el nombre de la máquina. Obviamente no es necesario que es este fichero estén identificados todos los equipos de nuestra intranet, sino solamente aquellos a los que debamos dirigirnos con algún propósito, amén del propio ordenador. Para configurarlo bastará usar cualquier editor de textos y dejarlo de la siguiente manera: # Do not remove the following line, or various programs # that require network functionality will fail dire localhost.localdomain localhost dire gato Este podría ser el fichero etc/hosts para el ordenador de dirección. Cuando resolvemos nombres de máquinas en Internet ya no usaremos este fichero 8 sino que ahora, el responsable es el archivo etc/resolv.conf que contendrá las direcciones de nuestros servidores de nombres (DNS) proporcionados por nuestro proveedor de acceso 9. De nuevo, usando nuestro editor favorito dejaremos el archivo etc/resolv.conf de esta guisa: nameserver nameserver nameserver Podemos colocar hasta tres servidores de nombres, en previsión de que alguno de ellos se caiga en un momento dado. Para aclarar, un poco, cómo funciona este asunto digamos que cuando una de nuestras máquinas necesita resolver un nombre, mira en primer lugar en el fichero etc/hosts y finalmente, si no consigue resolverlo, interroga a las máquinas especificadas en el etc/resolv.conf puesto que así se lo indica el fichero de configuración /etc/nsswitch.conf donde se le especifican los recursos de resolución de nombres en un línea que luce: hosts: files nisplus nis dns 6
12 Capítulo 2. Conceptos de redes Esta línea instruye a la computadora que, para resolver un nombre debe mirar en etc/hosts en primer lugar, según el parámetro files, después debe usar nisplus o nis caso de que tengamos implementados estos servicios en nuestra red local, y finalmente debe usar el sistema dns de los servidores de nombres. Notas 1. Para ser precisos deberíamos decir que una red es un conjunto de nodos ya que éstos no tienen que ser necesariamente ordenadores tal y como los concebimos, pueden ser -de hecho así ocurre en muchas ocasiones- simplemente terminales sin disco o impresoras inteligentes. 2. Protocolo de Control de la Transmisión (Transmission Control Protocol)/Protocolo de Internet (Internet Protocol) 3. paquetes 4. La versión actual es IPv4 aunque parece ser que se está preparando la IPv6 donde cada equipo tendrá un número de 128 bits, aumentando exponencialmente las posibilidades de expansión de la red Internet. 5. También llamados hosts, en este contexto. 6. Esta dirección de difusión se usa para enviar paquetes de datos que todos los equipos de la red deben recibir. 7. Que será la que tenga la dirección IP del gateway Sería un disparate que nuestro fichero etc/hosts almacenase todas las IP públicas de Internet 9. En realidad no es imprescindible usar los DNS de nuestro acceso a Internet, funciona con cualquier servidor de nombres público. 7
13 Capítulo 3. Enmascaramiento 3.1. Sobre los puertos El conocimiento y la gestión de los puertos no es un tema baladí, sin embargo, aún a riesgo de ser poco rigurosos podríamos compararlos con las cadenas de TV que recibimos en nuestros televisores, cada una la recepcionamos por un canal diferente en el mismo aparato y con el mismo cable. Algo parecido ocurre. Cuando un ordenador envía una petición a otro equipo de la red, cómo sabe éste qué tipo de servicio es solicitado?, simplemente porque la petición entra por un puerto determinado, es decir, existe una correspondencia común entre puertos y servicios que podemos ver ejecutando: $cat /etc/services Obteniendo un listado de todos los servicios y puertos disponibles del tipo: ftp 21/tcp ftp 21/udp fsp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp telnet 23/udp # 24 - private mail system smtp 25/tcp mail smtp 25/udp mail time 37/tcp timserver time 37/udp timserver... http 80/tcp www www-http # WorldWideWeb HTTP http 80/udp www www-http # HyperText Transfer Protocol kerberos 88/tcp kerberos5 krb5 # Kerberos v5 kerberos 88/udp kerberos5 krb5 # Kerberos v5 Donde se observa el servicio, el puerto/protocolo y una descripción del servicio prestado.por eso, cuando solicitamos una página web, salvo que indiquemos expresamente otra cosa, estaremos llamando al puerto 80 del servidor solicitado. Una vez recibida nuestra petición, si es razonable, se iniciará un pequeño diálogo con nuestra computadora para que se realice la conexión y, finalmente, veremos aparecer en nuestro navegador la página solicitada. Esta situación acontece cuando navegamos por internet con nuestra conexión facilitada por un proveedor de ISP. Al conectarnos, nuestro proveedor nos asigna una dirección IP pública que, normalmente varía de una conexión a otra. 1 Esta dirección IP asignada a nuestro equipo por el proveedor de ISP es la que permite a cada servidor web remitirnos las páginas que le solicitamos. 8
14 Capítulo 3. Enmascaramiento 3.2. El sistema NAT.Enmascaramiento y filtrado de direcciones IP Todo el proceso descrito en la Sección 3.1ocurre al conectarnos de manera sencilla con nuestro ordenador, un módem y una cuenta de acceso a Internet. Ahora bien, cuando tenemos una red y deseamos navegar desde cualquier equipo de la misma, la cuestión es diferente. Imaginemos que el ordenador n o 3 del aula de informática, info3, con dirección IP quiere consultar una documentación sobre linux en castellano y, para ello, realiza una petición al puerto 80 de la máquina es.tldp.org tecleando en su navegador Cuando el servidor de nombres le proporcione la IP adecuada y descubra que no pertenece a su red local, encaminará su petición a través de gato y éste redirigirá la petición al servidor es.tldp.org que la recibirá procedente de la IP y, en consecuencia, le responderá a gato que tiene que saber, de alguna manera servirle esta información a info3 que fue, en realidad, quien solicitó esta página. Para ello, gato marca el paquete que recibe de info3 asignándole un dato más que identifica el remitente de la petición, de modo que, al recibir la respuesta, sepa que no es para ella y redirigirla a quien la solicitó, en este caso info3. Todo este proceso que realiza gato se conoce con el nombre de enmascaramiento o masquerading y es una característica del núcleo de linux, a partir de su versión 2.0 que permite la navegación a toda una red local con una sola conexión a internet sin necesidad de usar un proxy. Es una de las posibilidades que nos ofrece el sistema NAT (Network Address Translation) o Traducción de Direcciones de Red. Puede ampliarse la información relativa al funcionamiento de NAT en el siguiente documento (http://www.netfilter.org/documentation/howto/es/nat-howto.txt) en castellano, aunque los sitios oficiales del proyecto NAT se encuentran en Penguin Computing (http://netfilter.filewatcher.org/), el equipo Samba y SGI (http://netfilter.samba.org/) y, por último, el mantenido por Harald Welte (http://netfilter.gnumonks.org/) Filtrado de paquetes Una red nunca es segura. Esta es la principal idea que nunca debe abandonar un administrador de red. Por lo tanto, con esa premisa, si permitimos el tráfico en nuestra red debemos tomar todas las precauciones a nuestro alcance para que impedir que los paquetes con código malicioso o no deseado circulen y que nos ocasionen algún quebradero de cabeza. Un filtro es, pues, un software que examina las cabeceras de los paquetes y decide su suerte conforme a unas reglas fijadas por el usuario. Este software está situado en el propio núcleo de Linux y se conoce con el nombre de netfilter, mientras que la herramienta encargada de su gestión, iptables es la que se comunica con el núcleo y le proporciona las reglas de filtrado de los paquetes. Básicamente son dos las acciones para con los paquetes examinados: DROP (Descartarlo y hacer como si no se hubiera recibido, con lo que el paquete se pierde irremediablemente) o ACCEPT (Dejar que pase y alcance su destino), aunque el abanico de posibilidades de uso de esta herramienta es tan sumamente amplio y poderoso que la creación de un buen cortafuegos es objeto de sesudos tratados y aquellos capaces de construirlos con robustez, son muy pocos y muy bien pagados. Aquellas mentes inquietas que quieran sumergirse en este apasionante mundo de la seguridad en las redes pueden comenzar con este documento (http://www.netfilter.org/documentation/howto/es/packet-filtering-howto.txt) en castellano. Los sitios oficiales son los mismos que para el enmascaramiento, ya apuntados en la Sección 3.2. Importante: La utilidad iptables añade y elimina reglas de la tabla de filtrado del núcleo, es decir, cualquier política que establezcamos con ella se perderá al reiniciar el sistema, a menos que las establezcamos como "permanentes" para que Linux las reconozca en el siguiente arranque. 9
15 Enmascarando y filtrando con gato Capítulo 3. Enmascaramiento Con Linux ha sido posible el enmascaramiento desde los arcaicos núcleos de la serie 1.1, aunque las herramientas han evolucionado y a partir de las versión 2.4 del núcleo se utiliza iptables para controlar todo el proceso. Es normal que todo pueda resultar algo farragoso e incluso demasiado complicado, pero para nuestro objetivo, trataremos de simplificar al máximo y conseguiremos de una forma sencilla que nuestro equipo sea capaz de enmascarar nuestra red local para navegar por internet. En primer lugar hemos de hacer que gato tenga habilitado el reenvio de paquetes, esto se consigue con la orden: root]# echo 1 > /proc/sys/net/ipv4/ip_forward /proc/sys/net/ipv4/ip_forward que es un fichero de texto que sólo con- Esta instrucción escribe el archivo tiene el carácter "1". Ahora nos disponemos a limpiar todas las reglas de filtrado que pudieran existir en nuestra máquina, para ello ejecutamos: root]# iptables --flush root]# iptables --table nat --flush root]# iptables --delete-chain root]# iptables --table nat --delete-chain Y, por último vamos a enmascarar nuestra red local y permitir que navegue con las dos instrucciones siguientes: root]# iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUER- ADE root]# iptables --append FORWARD --in-interface eth0 -j ACCEPT Se observa que las órdenes son bastante intuitivas. En la primera estamos diciendo que enmascare y enrute los paquetes a través de la segunda tarjeta de red que ya configuramos para comunicarnos con Internet. En la segunda, establecemos la política de aceptar los paquetes que reciba por la primera tarjeta de red (la que comunica con la red local) y los reenvíe. Hemos de aclarar que todo este montaje también sirve si queremos sacar nuestra red local a Internet aunque no dispongamos de ADSL sino de un módem convencional. El único cambio sería sustituir la eth1, que es la tarjeta dedicada a conectar con el router, por ppp0 que es la interfaz del módem. Es decir, en caso de disponer de un módem para conectar a Internet, las instrucciones serían: root]# iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUER- ADE root]# iptables --append FORWARD --in-interface eth0 -j ACCEPT Llegado a este punto, ya estamos en condiciones de comprobar que cualquier ordenador de nuestra red local es capaz de comunicarse con cualquier equipo externo que posea una IP pública. Podríamos comprobarlo usando simplemente: usuario]$ ping Deberíamos ver PING araneus.um.es ( ) from : 56(84) bytes of data. 64 bytes from araneus.um.es ( ): icmp_seq=1 ttl=245 time=220 ms 64 bytes from araneus.um.es ( ): icmp_seq=2 ttl=245 time=206 ms 64 bytes from araneus.um.es ( ): icmp_seq=3 ttl=245 time=210 ms 10
16 Capítulo 3. Enmascaramiento 64 bytes from araneus.um.es ( ): icmp_seq=4 ttl=245 time=197 ms --- araneus.um.es ping statistics packets transmitted, 4 received, 20% loss, time 4007ms rtt min/avg/max/mdev = / / /8.386 ms Esto probaría, no sólo que el ordenador número de cinco del aula de informática ha sido capaz de comunicarse con el servidor de la Universidad de Murcia, sino también, que funciona la resolución de nombres, por lo que navegaríamos ya sin problemas. Además, descubrimos que la máquina que sirve web se llama araneus con IP pública y que nuestro proveedor de Internet nos ha asignado la IP para esta sesión. Notas 1. salvo que deseemos pagar más y adquirir nosotros nuestra IP pública propia. 11
17 Capítulo 4. Sirviendo web 4.1. Introducción Uno de los objetivos de este montaje es aprovechar nuestro servidor para que proporcione, tanto al exterior como a la intranet, servicios de Internet. Uno de ellos, tal vez el más popular, el servidor web. El propósito de este tipo de software es transmitir páginas en formato html a los navegadores cliente que las soliciten, utilizando para ello el protocolo de comunicación http, aunque actualmente, es capaz de servir más tipos de contenidos, bien por sus propios medios o a través de la interacción con otros programas El servidor web Apache Hoy en día es el servidor web más utilizado del mundo, encontrándose muy por encima de sus competidores, tanto gratuitos como comerciales. Es un software de código abierto 1 que funciona sobre cualquier plataforma. Por supuesto, se distribuye prácticamente con todas las implementaciones de Linux. Tiene capacidad para servir páginas tanto de contenido estático, para lo que nos serviría sencillamente un viejo ordenador 486, como de contenido dinámico a través de otras herramientas soportadas que facilitan la actualización de los contenidos mediante bases de datos, ficheros u otras fuentes de información Instalación En caso de que no instalaramos desde el principio este servidor, siempre podremos instalarlo después de una forma cómoda y sencilla con la tecnología de paquetes autoinstalables que poseen tanto Red Hat como Debian, dos de las implementaciones más usuales de Linux. En el caso de Red Hat 8.0, por ejemplo, los paquetes son: apacheconf rpm apache rpm apache-manual rpm apache-devel rpm El único paquete realmente imprescindible es el segundo, puesto que el primero permite una configuración en modo gráfico, el tercero contiene toda la documentación y el último es el paquete de desarrollo donde se incluyen las fuentes del programa. Una vez instalado, se comporta como servidor independiente y viene preparado por defecto para atender peticiones realizadas a través del puerto 80 de nuestro equipo. Podemos interactuar con él de forma manual empleando las órdenes: root]# service httpd start root]# service httpd stop root]# service httpd restart root]# service httpd status Si deseamos arrancarlo, pararlo, reiniciarlo o comprobar su estado, respectivamente. 12
18 Configuración Capítulo 4. Sirviendo web Una vez realizada la instalación, Apache queda listo para trabajar. Podemos comprobar que funciona tecleando en nuestro navegador favorito se nos mostrará entonces una pantalla de bienvenida del servidor (It worked!), síntoma de que hemos contactado con él y se encuentra funcionando. Pantalla de bienvenida al servidor Apache Notas 1. Es un software de libre distribución que publica su código fuente, lo que permite que cualquiera pueda modificarlo y colaborar así a su desarrollo. 13

References: Resolución 
 Resolución 
 Resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución