Universidad Católica del Maule Facultad de Ciencias de la Ingeniería Técnico Universitario en Computación
TUC-315 Habilitación Profesional
INFORME DE PRÁCTICA.
LUIS MIGUEL VEGA MARTINEZ.
AGRADECIMIENTOS.
Me gustaría dar mis más sinceros agradecimientos a las siguientes personas:
• A Dios, por haberme guiado por el camino correcto en este sendero de la vida que es la Educación.
• A mi Madre por haberme dado todo el apoyo tanto emocional como económico y estar en cada situación que pudiera comprometer mis estudios. Además de confiar en mi y mis capacidades.
• A mis Familiares más cercanos que siempre me dieron el apoyo que necesité.
• A todos los Profesores de la Universidad que me hicieron clases, por haberme enseñado sus conocimientos y experiencias.
• A mis Compañeros, que siempre me dieron apoyo en las materias cuando lo necesité.
INDICE DE CONTENIDOS.
I.- INTRODUCCION……….………... 1
1.1.- Lugar de Trabajo………... 2
1.2.- La Institución……….. 3
1.3.- Objetivos del Departamento de Informática………... 4
1.4.- Infraestructura de la Municipalidad.………... 5
II.- DESCRIPCION DEL PROBLEMA……….. 7
2.1.- Descripción General de las actividades realizadas………. 7
2.2.- Creación del Firewall alternativo en GNU/Linux………... 8
2.3.- Configuración de Servidor FTP en GNU/Linux………. 9
2.4.- Diseño y Creación de Sitio Web de la Municipalidad……….. 11
III.- DESCRIPCIÓN DE LAS COMPETENCIAS PUESTAS EN PRÁCTICA………. 15
3.1.- Creación de Firewall.……… 15
3.2.- Servidor FTP……….. 15
3.3.- Desarrollo de Sitio Web. ……….. 16
IV.- DESCRIPCIÓN DE LA SOLUCIÓN PROPUESTA... 18
4.1.- Creación del Firewall alternativo en GNU/Linux... 18
4.2.- Configuración de Servidor FTP en GNU/Linux... 29
4.3.- Diseño y Creación de Sitio Web de la Municipalidad. ……… 36
V.- CONCLUSIONES..………. 51
VI.- BIBLIOGRAFIA………. ……… 55
VII.- ANEXOS.…..………. 56
7.1.- Fichero de Configuración del Firewall (firewall.sh)………... 56
7.2.- Fichero de Configuración Servidor FTP (proftpd.conf)……… 60
7.3.- Pantallas de módulos funcionales Sitio Web………... 61
7.4.- Códigos módulos funcionales Sitio Web………. 63
7.5.- Actividades Alumno………... 71
INDICE DE FIGURAS.
Figura 1. Organigrama de la Municipalidad de Chanco………. ……… 4
Figura 2. Diagrama de un Firewall básico……… 18
Figura 3. Topología de red usada para la conexión del Firewall……….. ……… 23
Figura 4. IPTraf entregando información actual sobre el tráfico IP de la red……. ……… 29
Figura 5. Cliente FTP gráfico bajo GNU/Linux……….……… 35
Figura 6. Mapa del Sitio Web de la Municipalidad……….. 38
Figura 7. Colores utilizados en el Sitio Web……….……… 39
Figura 8. Estructura de la página principal……….. ……… 40
Figura 9. Diagrama de flujo, módulo de solicitud de información turística……….. ……… 41
Figura 10. Diagrama de flujo, contacto desde el Sitio Web………. ……… 41
Figura 11. Diseño Oficial Sitio Web de Chanco……….. ……… 42
Figura 12. Ventana con tamaño incorrecto y ventana con tamaño correcto…….. ……… 45
Figura 13. Sistema de estadísticas de visitas del sitio Web……….. ……… 46
Figura 14. Banner de ingreso para ver el video transmitido……….. ……… 48
Figura 15. Pantalla de la página Índice Noticioso………... ……… 61
Figura 16. Pantalla de la página Solicitud de Información Turística.………... 61
Figura 17. Respuesta al enviar una solicitud de información……… 62
Figura 18. Formulario de Contacto……… 62
Figura 19. Pantalla de Ingreso al Chat y su funcionamiento………. 62
Figura 20. Contrato de Práctica Profesional………. 72
I.- INTRODUCCIÓN.
En el siguiente informe se presentarán y explicarán las actividades realizadas en la práctica profesional realizada en la Ilustre Municipalidad de Chanco, la cual comprendió un periodo de dos meses (Enero y Febrero) con un total de 400 horas, con el fin de de optar al Titulo de Técnico Universitario en Computación de la Universidad Católica del Maule.
La Ilustre Municipalidad de Chanco cuenta con un Departamento de Informática en donde se desarrolló todo el proceso de la Práctica realizando distintas actividades. El Departamento de Informática, además cuenta con personal capacitado para resolver los distintos problemas e inquietudes que se presentan a diario y que tiene que ver con el proceso laboral de las personas y la institución
Las actividades abarcan, como dominio de práctica, las áreas de Software y Soporte Técnico. Estos dos puntos fueron desarrollados de forma integral durante todo el periodo de práctica, donde se pueden destacar las siguientes actividades:
Soporte Técnico:
Mantención de equipos.
Instalación y Configuración de Hardware Reparación de Equipos Computacionales. Administración de la red local de la institución. Software.
Creación, Desarrollo y Diseño del Sitio Web de la Municipalidad. Transmisión vía Internet del Festival de Chanco. (Streaming). Manejos de Sistemas de información (en menor escala).
Cada actividad fue supervisada por el Jefe del Departamento de Informática de la Municipalidad, el señor Fernando Seguy Aravena, el cual está encargado de mantener la seguridad en los equipos, así como también su correcto funcionamiento, lo que permite el buen desarrollo de las actividades del personal de la Municipalidad.
Otras actividades importantes son el mantenimiento de la Red Local de la Municipalidad entre los distintos departamentos que la componen, gestionar el buen uso de Internet por parte de los funcionarios y por último proteger la red local de presuntos intrusos que pudieran acceder a ella desde Internet.
1.1.- LUGAR DE TRABAJO.
El jefe del Departamento de Informática asignó una oficina dotada de un computador Pentium de 400Mhz, 32mb en RAM, HDD de 4GB, Red 10/100, Conexión a Internet y Sistema Operativo Windows 98 SE. El Sistema Operativo fue borrado del disco duro posteriormente para instalar Debian Sarge GNU/Linux, en donde gran parte de las actividades fueron desarrolladas en él. - Horario.
La práctica comenzó el día 3 de enero de 2005 y terminó el día 25 de Febrero de 2005, cumpliendo el siguiente horario.
De lunes a viernes:
• Desde las 8:30 a las 13:00 horas.
• Desde las 13:45 a las 18:00 horas.
Cabe mencionar que este era el horario que se debía cumplir obligatoriamente, pero muchas veces se tuvo que hacer horas extras, por lo que las 400 horas pedidas por la Universidad se cumplieron satisfactoriamente.
Otro punto a recordar es que se trabajó los días del Festival, los que contemplaron los días Viernes, Sábado y Domingo, desde las 21:00 horas hasta las 4:00 de la madrugada, completándose 24 horas mas.
- Cargos desempeñados.
El cargo desempeñado dentro del periodo de práctica fue principalmente el de Administración de Sistemas, con esto nos referimos a la Administración de Redes, Seguridad en Redes, Configuración de Software y Hardware, etc. El otro cargo que también fue desempañado, principalmente las últimas semanas de práctica (Mes de Febrero) fue el de Soporte Técnico, en donde las tareas principales fueron el arreglo, configuración e instalación de hardware, configuración de Estaciones de Trabajo, apoyo teórico al Personal de la Municipalidad, etc.
Un cargo, el cual duró por dos semanas fue el de reemplazante del Jefe del Departamento de Informática, ya que el Sr. Fernando Seguy tomó vacaciones. En este periodo las actividades tuvieron un comportamiento normal, salvo que un día el servicio de Internet no funcionaba y se estuvo aproximadamente cuatro horas tratando de reestablecer la conexión con personal de Telefónica, hasta que finalmente se comprobó que el Firewall físico (D-Link) se encontraba con problemas por lo que se tuvo que reconfigurar nuevamente.
- Relaciones con el Personal.
Las relaciones con el personal pertenecientes a otros departamentos de la Municipalidad se hacía en forma directa, esto es, si alguna persona tenía algún problema con algún computador, ya sea por problemas con el Sistema Operativo, configuración de Software, Hardware, etc., la persona hablaba directamente con el encargado y solucionaba el problema, no era necesario hablar con el jefe del departamento, aunque en casos extremos si se debía hacer.
1.2.- LA INSTITUCIÓN.
- Descripción General.
La Institución, en la cual se realizó la práctica profesional es la Ilustre Municipalidad de Chanco, ubicada en la Comuna de Chanco, Provincia de Cauquenes, en la VII Región del Maule. Esta institución pública está divida en varios departamentos, entre los que se destacan: Salud, Educación, Obras, Social, Turismo, Relaciones Públicas, Finanzas e Informática (sin dejar de lado la Alcaldía y Concejales), este último (Informática), es en donde se efectuó la Práctica Profesional. La Ilustre Municipalidad de Chanco está a cargo de la Señora Alcaldesa Muriel Muñoz Moreno, y es la persona que autorizó la realización de la práctica por parte del estudiante. Además de la Señora Alcaldesa se encuentran los Concejales de la Comuna y los Jefes de los distintos departamentos, los que se reúnen en diferentes ocasiones para tratar temas de la comuna y la institución.
El Departamento de Informática de la Ilustre Municipalidad de Chanco, sirve de apoyo a todos los departamentos de la institución incluyendo algunas entidades públicas que no sean parte de la institución.
- El Organigrama.
Figura 1. Organigrama de la Municipalidad de Chanco. - Grupo de Trabajo.
El grupo de trabajo que compone el Departamento de Informática de la Ilustre Municipalidad de Chanco, está constituido por cuatro personas. El jefe del Departamento de Informática, Fernando Seguy Aravena (Ingeniero en Ejecución Informática, [email protected]), que es el encargado de administrar los sistemas computacionales que posee la institución, tales como: Redes, Sistemas de Información, Soporte a Equipos, etc. Las tres personas restantes efectúan trabajos que se relacionan con trámites a través de Internet, como por ejemplo: Crear Licitaciones en el Portal Chile Compra, contactos a través de correo electrónico a diferentes instituciones, etc.
1.3.- OBJETIVOS DEL DEPARTAMENTO DE INFORMÁTICA.
El objetivo del Departamento de Informática es dar apoyo tanto teórico como técnico a los diferentes Departamentos que conforman la institución, así como también velar por la seguridad de los sistemas computacionales, en cuanto a mantención, actualización, configuración, etc., de manera que se tenga el mejor rendimiento de ellos y así mejorar la calidad de los servicios que se están entregando.
Entregar apoyo técnico a las diferentes instituciones de la comuna, principalmente a escuelas, en donde los laboratorios de computación muchas veces no son mantenidos de manera correcta.
- Reglas.
El uso de los computadores esta reservado nada mas que para el uso laboral, no se acepta que se usen para otras tareas como descargar música desde Internet, instalar programas del tipo P2P (Peer to Peer), desarmar los equipos, trasladarlos sin autorización previa, etc.
Solo se permite el uso de computadores a la persona que le fue asignado, debe haber una autorización previa en el caso de que otra persona use dicho equipo.
El uso del Chat es solo con fines laborales y no se acepta la instalación de Software Pirata o que no cuente con licencia legal.
1.4.- INFRAESTRUCTURA DE LA MUNICIPALIDAD.
La institución cuenta con computadores en cada uno de sus departamentos habiendo aproximadamente unos 30 equipos en las estaciones de trabajo.
Las características de estos varían, ya que por diferentes razones los computadores son armados de manera independiente, según las necesidades de algún departamento.
Además la institución cuenta con equipos destinados a propósitos específicos, tales como un Plotter, Sismógrafo, Router, Cámara Digital, etc. los que son utilizados en diferentes actividades. - Equipos.
Podemos destacar los siguientes equipos:
• 1 Servidor Windows 2000 Server.
• 15 Pentium de 400Mhz, 2Gb de Disco Duro 32Mb RAM, Windows 98 SE.
• 5 Pentium de 600Mhz, 4Gb de Disco Duro, 64Mb RAM. Windows 98 SE.
• 10 Pentium IV de 2.6 Ghz, 40Gb Disco Duro, 128Mb RAM, WindowsXP Pro. (SP1 y SP2)
• 1 Plotter, ocupada por Prodesal, para la impresión de Mapas y algunos afiches.
• 1 Router Cisco, Para conexión a Internet, arrendado por Telefónica.
• 2 Módem, un RDSI de 128 Kbps y uno de 56Kbps.
• 2 Switch/Firewall/Router D-Link.
• 4 Hubs de 10Mb, Distribuidos en los diferentes departamentos
• 1 Cámara Digital DSC-P32, para fotos de eventos y página Web.
• 1 Data Show, para cubrir presentaciones.
Cabe mencionar que cada uno de los equipos cuenta con sus licencias en lo que se refiere a Sistemas Operativos, Herramientas de Ofimática, Antivirus y Software Utilitario.
- Red Municipal.
Hablaremos acerca de la red local de la Municipalidad y la Conexión a Internet que esta posee, además se darán a conocer algunas reglas que se deben seguir.
Cabe señalar que no todos los computadores cuentan con conexión a Internet, ya que la conexión es bastante limitada (128Kbps) y solo se reserva el uso de Internet a los departamentos que realmente lo requieren, tales como Alcaldía, Informática, Turismo, Relaciones Públicas, etc. Si por alguna razón se sorprende usando Internet para tareas no laborales, simplemente se suspende el servicio, ya que se considera que el uso no es necesario.
Otro punto a destacar es que la Municipalidad esta conectado por completa en red (LAN), incluso a departamentos que se encuentran fuera del edifico de la Municipalidad, como por ejemplo el Departamento de Salud que esta ubicado a unos 300 metros, el cual se conecta a la red local mediante un Cable Coaxial (RG58).
Lo mismo pasa con el Juzgado de Policial Local, el cual está ubicado a unos 320 metros, y que se conecta a la red local mediante un acceso telefónico a redes utilizando una VPN (Red Privada Virtual) con un módem de 56Kbps.
Recordemos que una Red LAN, es una red de área local, como lo indican sus siglas en inglés. Este tipo de redes se suele usar en lugares geográficamente pequeños, donde prácticamente la distancia entre un equipo a otro no supera los 150 metros, [Roja, 02a].
II.- DESCRIPCIÓN DEL PROBLEMA.
2.1.- Descripción General de las actividades realizadas.
- Creación de Firewall Alternativo.
El Objetivo de esta tarea es tener una solución alternativa y que funcione, en lo que se refiere a la administración y protección de la Red Local. En pocas palabras se supone que la Red Local es segura, pero la Red de Redes (Internet), no lo es, por lo tanto, el Firewall permite proteger de posibles ataques externos y además evita que los usuarios de la Red Local reenvíen paquetes (TCP o UDP) no permitidos y que no se ajustan a los fines laborales.
- Configuración de un Servidor FTP.
El servidor FTP (File Transfer Protocol), tiene como objetivo el respaldo de información por parte de los usuarios de la Red Local, o simplemente compartir información de interés para todos los usuarios. Además se evita el uso compartido de carpetas por parte de los usuarios.
- Creación del Sitio Web.
Esta fue una de las tareas en la que se ocupó más tiempo, ya que el Sitio Web tuvo que ser diseñado por completo, eso sí, usando información que ya estaba en el sitio antiguo. Además se añadieron una serie de módulos completamente funcionales, tales como un Sistema de Estadísticas, un Formulario con Solicitud de Información, un Formulario de Contacto, y un Chat. Además, por cuarta vez, el Festival del Cantar Mexicano de Chanco fue transmitido por Internet, utilizando el codificador de Windows media que provee Microsoft gratuitamente, en donde se tuvo una gran cantidad de visitas durante los tres días que duró el Festival.
- Soporte Técnico.
El objetivo de esta tarea fue dar apoyo teórico y técnico a los funcionarios municipales, en lo que se refiere a la utilización de Software y Hardware. No se dará una explicación detallada de esta actividad, ya que se integra a cada una de las actividades anteriores.
2.2.- CREACIÓN DEL FIREWALL ALTERNATIVO EN GNU/LINUX.
En la mayoría de las organizaciones la seguridad es una parte más de la red y del sistema1. Resulta de gran relevancia ya que un sistema computacional carecería de sentido si la integridad y la confidencialidad de la información que se procesa fuera violada. Existen muchas amenazas en Internet y en la propia red local que se deben proteger, estas pueden ser:
• Ataques de Crackers (no Hackers).
• Propagación de Virus, Gusanos (desde y hacia nuestra red).
• DoS (Denegación de Servicios).
• Mal uso del ancho de banda.
• Acceso a información prohibida.
• Mal uso del sistema (accidentalmente).
• Muchos Otros. - Objetivos.
Cada Firewall tiene uno o más objetivos, y estos se crean a partir de las necesidades de nuestra red, de esta manera definiremos las políticas o reglas que tendrá nuestro Firewall2. Las más importantes se muestran a continuación:
• Lograr de una mejor manera el filtrado de paquetes que posee el Firewall físico utilizado hasta el momento.
• Dar seguridad a los servicios ofrecidos solamente a la red local, con el fin de que personas ajenas a la red no puedan entrar.
• Bloquear el acceso desde Internet a computadoras de la red local, salvo los que se especifiquen en las reglas del Firewall.
• Bloquear el acceso a páginas que puedan distraer al personal de la Institución (Chat, páginas con contenido pornográfico, juegos, etc.).
• Permitir la salida a Internet de la red local (Gateway). - Logros de la actividad.
Esta actividad tuvo sus logros en lo que se refiere al desarrollo, la implementación y puesta en marcha del Firewall, que resultó todo un éxito.
1 Ver, Cortafuegos para redes. Filtrado de paquetes, http://dns.bdat.net/documentos/cortafuegos/x26.html 2 Ver, Instalación de un Firewall, http://www.glib.org.mx/article.php?story=20030330191547238
Por otro lado se logró que el Firewall funcionara correctamente, esto quiere decir que el Bloqueo de páginas, bloqueo de servicios, redirección de puertos a máquinas locales, la utilización de NAT y el uso de MASQUERADE para permitir que la red saliera a Internet se logró con éxito.
En primera instancia se tuvo que leer mucha documentación acerca de la implementación de este tipo de Firewalls, así como también se debió preguntar a algunos administradores de red para que nos orientaran un poco, ya que no se tenia una experiencia previa, salvo alguna que otras pruebas realizadas de forma particular.
Lo anterior fue uno de los puntos en contra, pero que logró superarse después de haber realizado una gran cantidad de preguntas en listas de discusión de Linux3 en general y Debian4.
Lo que no se logró fue principalmente que el Firewall no se implementara de forma definitiva en la red y que se convirtiera en una alternativa real, es decir, que el Firewall quedara implementado permanentemente en la Municipalidad, algo que sin duda es una opción abierta.
2.3- CONFIGURACIÓN DE SERVIDOR FTP EN GNU/LINUX.
A continuación se explicará en forma detallada como fue la creación y configuración de un Servidor FTP de uso local utilizando GNU/Linux, para ello se presentarán las herramientas utilizadas en su creación y posterior utilización.
Los servidores FTP, por muchos años, se han usado y aún se usan en Internet para la transferencia de archivos así como también para respaldar información. El uso más común a la vista es la transferencia de archivos a servidores que sirven páginas Web, de esta manera a los usuarios se les hace mas fácil subir sus archivos a dichos servidores. Otro uso importante que se le da al FTP, es la descarga de archivos relativamente grandes, utilizando para ello el FTP anónimo, lo cual permite iniciar una sesión en el servidor FTP sin tener una cuenta asociada. La implementación de un servidor FTP para uso interno permite compartir archivos que son de interés común para el personal de la institución, así como también permite el respaldo de información en un computador seguro, de tal manera que la información respaldada no corra el riesgo de que se pierda.
3 Ver, The Linux Home Page, http://www.linux.org
Como esto es algo nuevo para los usuarios de la red, se tuvo que capacitar a la mayoría de ellos, ya que el uso de los computadores por parte del personal, se reduce a la utilización de herramientas de ofimática, navegación en Internet, uso de clientes de correo, entre otras cosas, pero no en el uso de un cliente FTP.
- Objetivos.
• Hacer que los usuarios de la Red Local puedan respaldar sus archivos, tales como documentos, imágenes, e-mail, etc., de manera que si quedan sin espacio en sus discos duros puedan almacenar temporalmente su información.
• Compartir archivos que le puedan servir a todo el personal de la institución, tales como documentos PDF o Word que contienen oficios, memorandos, circulares y todo tipo de documentos reservados para el uso interno.
• Evitar el uso compartido de carpetas entre los usuarios de la red local (situación actual) ya que a veces puede causar que la red se vuelva muchas veces lenta. Además se evita que los usuarios de la red puedan entrar a computadores donde la información puede ser privada.
• Respaldar Software que son de utilidad en la mayoría de los computadores de la red, tales como Antivirus, Compresores, Drivers para Impresoras, Procesadores de Texto, actualizaciones de Sistemas Operativos, etc. De esta manera se evita andar con los CDs de instalación de un lado a otro.
- Logros de la actividad.
Esta actividad cumplió sus objetivos de manera correcta y fue la actividad más rápida en cumplirse ya que se contaba con la experiencia en la implementación de servidores de transferencia de archivos, tanto en Windows5 como GNU/Linux.
En primera instancia se pidió crear un Servidor FTP de tipo anónimo, pero no se pudo implementar por la razón de que los usuarios finales (personal de la Municipalidad) no contaban con el conocimiento y la capacidad de conectarse al servidor de la manera que lo requiere un FTP anónimo.
Para recordar, debemos decir que un FTP Anónimo requiere de un nombre de usuario, que en la mayoría de los casos es: “anonymous”, “anonimo”, “ftp”, y como contraseña se debe especificar un correo electrónico cualquiera.
La manera de entrar al servidor puede ser variada, desde, entrar por consola, a través de exploradores de ventanas, o lo más común, con un cliente FTP. Finalmente los usuarios pueden guardar sus archivos en el servidor y respaldarlos sin ningún problema, pero no todos aprendieron a usar el cliente FTP.
2.4- DISEÑO Y CREACIÓN DE SITIO WEB DE LA MUNICIPALIDAD.
En la actualidad el número de Sitios Web pertenecientes a instituciones públicas ha incrementado de manera considerable, a esto además se le agrega el uso masivo de Internet a nivel nacional. Aunque aún existe una pequeña parte de la sociedad que no tiene acceso a las nuevas tecnologías de la información (NTI)6.
Por otro lado, la prestación de servicios vía web por parte de las municipalidades se ha desarrollado bastante en los últimos años, podemos mencionar, pagos de permisos de circulación, solicitud de información, ofrecer información sobre las actividades internas de la institución, entre otras.
Es por esto que creemos que un Sitio Web para una institución pública, es de gran ayuda en el avance de esta. Haciendo un buen uso de las Tecnologías de la Información se puede lograr que las personas hagan del Sitio Web una herramienta indispensable, [Vidal, 03].
A continuación se explicará la metodología usada en el diseño y construcción del Sitio Web de la Ilustre Municipalidad de Chanco, la forma en que se cumplieron los objetivos deseados, las herramientas utilizadas, contenidos definidos, creación de la estructura, etc. Para esto daremos una breve explicación de cada uno de los pasos que se realizaron.
- Planificación del Sitio Web.
Para desarrollar un Sitio Web se debe tener muy en claro algunos aspectos que son de vital importancia, como por ejemplo, la necesidad de la institución pro desarrollar un sitio, cuales son sus objetivos, que busca el visitante, a que público está dirigido, tecnologías a usar, etc. Tales aspectos se nombran a continuación7.
6 Ver, Guía Web 1.0, http://www.guiaweb.gov.cl/
Se quiere dar una nueva imagen de la Municipalidad a los usuarios, es decir, una institución que va avanzando en el uso de Tecnologías de la Información, una institución seria y que ofrece una gran cantidad de oportunidades en la Comuna.
Se necesita un Sitio Web para dar información tanto a la comunidad local, como a personas que se encuentran en otros lugares del País y del mundo. La información se refiere a noticias que tengan que ver con la realidad local y provincial, informar sobre eventos, licitaciones, etc.
Dar servicios a los visitantes, en donde por ejemplo, los visitantes puedan conversar en línea y en tiempo real (Chat), y algún tipo de contacto con la Municipalidad que vaya más allá del contacto físico.
Podemos reducir el número de personas que visitan la Municipalidad, ofreciendo información útil a las personas a través del Sitio Web, como por ejemplo folletos de información turística, planos, etc. Por otro lado, el sitio está dirigido a todo tipo de personas, es decir, los más chicos pueden ver información referente a las actividades de verano, que por lo general se enfoca hacia los mas pequeños, los adolescentes buscan por lo general conectarse al Chat, y los mas adultos por lo general solicitan información turística, hacen comentarios al personal de la institución a través del módulo Contacto, etc.
Se aprovecharán al máximo las tecnologías disponibles, tales como Editores Web (FrontPage, Crimson Editor, gEdit), Edición de imágenes (Fireworks, Paint, Gimp), Animación (SwishMax) Lenguajes de Programación (HTML, PHP, JavaScripts, CSS), Cliente FTP (SecureFX, gFTP), etc. Una vez que tengamos claro hacia donde y que camino debe tomar el Sitio Web, pasaremos a definir los objetivos, los cuales deben ser muy claros, para que así se logre el mayor enfoque y desarrollar efectivamente lo que se desea alcanzar.
- Objetivos
Definiremos un objetivo global, el cual ayudará a tener una idea global de lo que se quiere lograr y a partir de esto iremos proponiendo objetivos mas específicos que se irán cumpliendo a medida que se avance en el desarrollo del sitio.
• El objetivo principal del Sitio Web es ofrecer un servicio a la comunidad, en donde los visitantes se puedan informar sobre las actividades de la Institución y de la comunidad en general, por otro lado, que el visitante pueda comunicarse con la institución haciendo
preguntas sobre los diferentes acontecimientos y sus inquietudes, todo esto de una forma amigable, didáctica y fácil de encontrar.
• Ofrecer información a la comunidad en general y a personas de otros lugares, de manera que tengan conocimiento sobre la realidad local y de lo que vendrá próximamente. Esta información será presentada en un módulo de Noticias, que por lo general cada semana será actualizada.
• Permitir la interacción entre las personas que visitan el sitio, esto es, que las personas pueden conversar en tiempo real y compartir ideas, establecer relaciones, etc.
• Promocionar el turismo en la comuna, a través de un módulo en donde los visitantes puedan solicitar folletos de información turística, mapas, etc. Y además ofrecer una guía turística online, en donde el visitante pueda ver desde cualquier lugar los atractivos turísticos de la comuna.
• Fomentar el comercio local, destacando un comerciante (PyME) cada mes, mostrando sus productos e información adicional que pueda ser de gran ayuda para el visitante.
• Dar información sobre las autoridades de la comuna, y además que los visitantes puedan enviarle mensajes a ellos.
- Equipo de trabajo.
El equipo de trabajo está compuesto por dos personas, el jefe del Departamento de Informática de la Municipalidad, Fernando Seguy y el alumno en práctica, Luis Vega.
Se debe tener una relación constante para así saber lo que falta y lo que se puede mejorar. Entre las actividades a desarrollar y cargos establecidos se encuentran:
• Fernando Seguy: Gestor de contenido, es decir, seleccionar módulos que se incluirán en el sitio, de esta manera se le dará la formalidad deseada. Además ayuda a la creación de estos mismos, en lo que se refiere a la información (estructura, formato, etc.). Por otro lado ayuda a revisar sistemáticamente la actualización de la información.
• Luis Vega: Webmaster, es el encargado de la construcción física e infraestructura técnica del sitio. Además es el que hace uso de las tecnologías mencionadas anteriormente. Otra tarea a desarrollar es la de implementación del sito, en donde las actividades son el diseño en lo que se refiere a la estética y por otro lado la programación de este.
- Logros y no logros.
En general, todo lo que se pidió hacer fue realizado sin ningún problema. El sitio cumplió con la mayoría de sus expectativas, ya que se incrementó bastante el número de visitas por día y los módulos creados han funcionado con éxito hasta el día de hoy. Algo que sin duda dejó muy contentos a los Jefes de la institución.
Uno de los problemas que se tuvo y no pudo ser solucionado fue el de cambiar el Chat, en todos sus aspectos, es decir, desde el lenguaje de programación usado, hasta su estética. Esto no se pudo lograr ya el servicio de Hosting de la página tenia unos problemas con el soporte para el lenguaje PHP, ya que el Chat estaba programado en ese lenguaje, y el antiguo Chat estaba desarrollado con ASP y no tenía muchas prestaciones por decirlo así. Se llegó a la conclusión de que el hosting tenia incompatibilidad de con la versión de PHP, ya que se estaba usando la versión 4.3.4 y nosotros una mas antigua. Pero no quiere decir que el Chat no funcione, por que había sido probado en otros servidores, donde funcionó sin ningún problema.
III.- DESCRIPCIÓN DE LAS COMPETENCIAS PUESTAS EN PRÁCTICA.
3.1.- Creación de Firewall.
Las competencias puestas en práctica para esta actividad son las siguientes: Utilización de plataformas x86, para el desarrollo del Firewall
Administración de Redes Computacionales.
Configuración de equipos en diferentes plataformas para adaptarse a una red corporativa. Utilización de plataformas basadas en Unix, como lo son Windows y GNU/Linux.
Utilización de Software libre para desarrollar las soluciones propuestas. Uso de diferentes metodologías para solucionar los problemas.
Técnicas de expresión para aclarar dudas con respecto a la problemática. Entre otras.
El dominio de realización para esta actividad consta del Soporte Técnico, esto abarca todo lo mencionado anteriormente, lo que se reflejará en la explicación que se dará más adelante.
En cuanto a las dificultades encontradas, podemos mencionar la poca experiencia en la implementación de firewalls bajo plataformas Linux, y un poco de desconocimiento del funcionamiento de la red local de la institución.
La forma en que se resolvieron estas dificultades consta desde la inscripción en listas de correo, hasta las consultas realizadas administradores de redes que ya han trabajado en el tema de GNU/Linux y la seguridad de sistemas8. Lo anterior también está respaldado por la lectura de documentos y ejemplos encontrados en Internet, lo cual dio mucha ayuda a la resolución del problema.
3.2.- Servidor FTP.
Las competencias puestas en práctica para esta actividad en específico, fue básicamente la de Soporte Técnico (domino de realización), ya que requiere en un 100% la utilización de Sistemas Operativos, tanto Windows como GNU/Linux, para la configuración, implementación y puesta en marcha del servicio y por otro lado el manejo de redes de área local (LAN) y redes de áreas extensas (WAN).
Al igual que la anterior actividad, esta requiere el uso del Sistema Operativo GNU/Linux, el que se integrará al Firewall existente y así se aprovecha mejor los recursos que la maquina puede entregar.
Las competencias utilizadas, contemplan: Utilización de plataformas x86.
Administración de Redes Computacionales.
Utilización de plataformas basadas en Unix, como lo son Windows y GNU/Linux. Utilización de Software libre para desarrollar las soluciones propuestas.
Apoyo teórico a los usuarios finales.
Uso de diferentes metodologías para solucionar los problemas.
Técnicas de expresión para aclarar dudas con respecto a la problemática. Entre otras.
En cuanto a dificultades encontradas, por parte de la configuración e implementación del servidor, se puede decir que no hubieron ya que se requería de experiencia, aunque no tan avanzada, pero cumplía bien con los objetivos requeridos.
La única dificultad se encontró en el momento de la puesta en marcha y la utilización por parte de los usuarios finales. Ya que como dijimos anteriormente, la mayoría de ellos no sabían utilizar este servicio y más aun los conocimientos en el uso de estaciones de trabajo no era muy buena.
Lo anterior no se pudo resolver en un 100%, ya que aun con dar apoyo teórico y práctico a los usuarios, ellos no fueron capaces de realizarlo por si solo, Pero no es un problema que tenga que ver con la configuración del servicio, que es lo que interesa explicar.
3.3.- Desarrollo de Sitio Web
Se debe considerar la creación de un Sitio Web como el desarrollo de un software a medida, ya que debe cumplir una serie de etapas, tal como lo hace el ciclo de vida del software, pero que en la mayoría de los casos, las etapas no se cumplen porque no son necesarias. Las etapas realizadas en este caso son la de especificación de requerimientos, diseño y programación del sitio, puesta en marcha e implementación final.
En lo que se refiere al dominio de la práctica, relacionándolo con el desarrollo de software, podemos mencionar las siguientes competencias aplicadas.
Utilización de herramientas para la gestión de sitios web
Herramientas para el diseño de sitios web (Imágenes, Páginas, Animaciones).
Utilización de diversos lenguajes de programación (PHP, Java Script, ASP, HTML, CSS). Desarrollo de proyectos informáticos.
Ingeniería de software. Entre otros.
Las dificultades encontradas son siempre las mismas en la mayoría de las actividades en donde se pide el desarrollo de un software, que por lo general son el desconocimiento por parte del cliente acerca de lo que el quiere como producto final.
Estos problemas son fáciles de resolver cuando se cuenta con una experiencia previa, ya que el desarrollador sabe que en la mayoría de las páginas, los servicios básicos entregados son los mismos, y es algo que en este caso si ocurrió. Por eso se hizo uso de prototipos que iban siendo probados durante el proceso de desarrollo hasta quedar con uno que se adecuara perfectamente a las necesidades del sitio.
En lo que se refiere a diseño y programación del sitio, no tomó mucho tiempo, todo se hizo muy rápido (aproximadamente 1 semana), ya que se contaba con algunos módulos creados, solo se debieron adaptar al formato de la nueva página.
Lo que si tomó tiempo fue definir bien los módulos a poner en la página principal, ya que resulta de mucha importancia la información que será mostrada a los visitantes.
IV.- DESCRIPCIÓN DE LA SOLUCIÓN PROPUESTA.
4.1.- Creación del Firewall alternativo en GNU/Linux.
A continuación se explicará en un lenguaje técnico avanzado, la forma en que se desarrolló la solución propuesta, comenzando con un marco teórico y las etapas realizadas.
4.1.1.- Marco teórico.
A.- ¿Que es un Firewall?
Un Firewall es un dispositivo que filtra el tráfico entre redes, como mínimo dos, donde existe una política de control de acceso entre estas redes. Puede ser un dispositivo físico o un software sobre un Sistema Operativo. En general un Firewall es un dispositivo con dos interfaces de red en las que se establecen reglas de filtrado con las que se decide si una conexión determinada puede establecerse o no. Además puede realizar modificaciones sobre las comunicaciones, como por ejemplo hacer NAT9. Debemos recordar que la máquina que hará de Firewall también tendrá que hacer de Router con el objetivo de compartir Internet a los usuarios de la red local.
El Router se integra con el Firewall dentro de la misma configuración de IPTables y las reglas de filtrado. El hardware dependerá exclusivamente de las necesidades de la red, [Mancill, 03a]. Con un Firewall podemos filtrar el tráfico TCP, UDP, ICMP, IP, etc., y decide si un paquete pasa o sale de nuestra red, si se modifica o simplemente se descarta, [Petersen, 01a].
B.- Diagrama de un Firewall básico.
El diagrama mostrado en la figura 2, representa la estructura de un Firewall básico en que tenemos protegida nuestra red local a través del Firewall (PC) el cual esta detrás del Router que posee la conexión y que mira hacia Internet. Este diagrama es bastante similar al que vamos a usar en la creación de nuestro Firewall.
Figura 2. Diagrama de un Firewall básico.
9 Ver, iptables en 21 segundos, http://www.pello.info/filez/IPTABLES_en_21_segundos.html
C.- ¿Qué es netfilter/iptables?
Es un proyecto que pertenece al subsistema de Firewall de Linux 2.4.x y 2.6.x. Ofrece la funcionalidad de filtrado de paquetes, traducciones de direcciones (y puertos) de red (NA[P]T), la manipulación de paquetes (modificar ToS -Type of Service- y encabezados) y también facilita el trabajo al subsistema de QoS (Quality of Service) de GNU/Linux10.
Netfilter es un conjunto de ganchos dentro de la pila de red del Kernel Linux 2.4.x y 2.6.x, que le permite a los módulos del Kernel registrar funciones callback que se mandan llamar cada vez que un paquete atraviesa alguno de esos ganchos, [Petersen, 01b].
IPTables es una estructura genérica tipo tabla para la definición de reglas de Firewall. Cada regla dentro de una tabla IP consiste en un número de clasificadores y una acción asociada11.
D.- Uso básico de iptables
Se verán algunos conceptos básicos de iptables para así poder entender su uso. Esto consta de lo siguiente:
Reglas
Los objetos más básicos son las “reglas” que realizan el filtrado de los paquetes o su manipulación. Una regla se compone de varias partes12.
• La Tabla a la cual debe añadirse esta regla.
• La Cadena a la cual se añade esta regla (INPUT, FORWARD, OUTPUT).
• Las instrucciones de filtrado o de manipulación.
• El objetivo de la regla.
En el objetivo se define que se debe hacer con el paquete. DROP (denegar), REJECT (rechazar), ACCEPT (aceptar), LOG (enviar un archivo de log o avisos), entre otras.
Cadenas
Las reglas se organizan en cadenas, las que representan una lista ordenada de dichas reglas. Las cadenas por defecto que nos encontramos son INPUT, OUTPUT y FORWARD, [Petersen 01c]. Los paquetes que llegan al Firewall se comparan con las reglas que están definidas, eso sí, siguiendo el orden.
10 Ver, Web Principal del proyecto Netfilter, http://www.netfilter.org 11 Ver, Web Principal de IPTables, http://www.iptables.org
Tablas
Las cadenas se organizan en tablas. Hay tres tablas disponibles:
• filter, es la que se usa por defecto y sirve para el filtrado de paquetes.
• NAT, sirve para hacer traducciones de direcciones de red, permite cambiar las direcciones de origen y de destino en el paquete, en nuestro caso la usamos para hacer MASQUERADE.
• mangle, se usa para cambiar atributos de los paquetes. En nuestro caso no la usaremos. Ordenes básicas.
• iptables –F: flush de reglas (limpia).
• iptables –L: listado de reglas que se están aplicando.
• iptables –A: append, añadir regla.
• iptables –D: borrar una regla.
Para crear una nueva regla al final de las ya existentes en una chain (cadena) determinada se debe usar:
# iptables -A [chain] [especificacion_de_la_regla] [opciones]
Para insertar una regla en una posición determinada de la lista de reglas de una chain determinada:
# iptables -I [chain] [posición] [especificacion_de_la_regla] [opciones]
Para borrar una regla en una posición determinada de la lista de reglas de una chain determinada: # iptables -D [chain] [posición]
Para todas las reglas de una chain determinada: # iptables -F [chain]
Para listar las reglas de una chain determinada: # iptables -L [chain]
La especificación de reglas se hace con los siguientes parámetros:
• -p [protocolo]: protocolo al que pertenece el paquete.
• -s [origen]: dirección de origen del paquete, puede ser un nombre de host, una dirección IP normal, o una dirección de red (con máscara, de forma dirección/máscara).
• -i [interfaz-entrada]: especificación del interfaz por el que se recibe el paquete (eth0, ppp0, etc).
• -o [interfaz-salida]: interfaz por el que se va a enviar el paquete (eth0, eth1, etc).
• --dport [puerto] y –sport [puerto]: puerto de destino y origen respectivamente.
• -j [target]: nos permitirá elegir qué haremos con el paquete, elegimos el target al que se debe enviar ese paquete, esto es, la acción a llevar a cabo con él (DROP, REJECT, ACCEPT).
4.1.2.- Etapas Realizadas.
A.- Situación actual.
En estos momentos la Institución cuenta con un Firewall Físico D-Link Di 704 P, el cual posee un Sistema Operativo empotrado, configurable vía interfaz Web. El Firewall actualmente está configurado para actuar de Gateway (puerta de enlace) para las computadoras de la red local, además tiene algunas reglas de filtrado de ciertas páginas o sitios Web de Internet, cuyas reglas son limitadas, debido a las características del Firewall (Sistema Operativo limitado).
El Firewall tiene bloqueado todo acceso desde Internet, ya que el servidor principal presta servicios en algunos Puertos, los cuales no tienen porqué ser vistos desde Internet. Algunos de estos servicios, son vistos solo por algunas direcciones IP desde Internet, las que son especificadas en las Reglas de SNAT, DNAT y Virtual Server del Firewall y las redirecciones de puertos.
B.- Implementación
La máquina destinada para la construcción del Firewall tiene las siguientes características:
• Pentium 400 MHz con 32 MB de RAM.
• Disco Duro de 2 GB IDE.
• Tarjeta de red Realtek D-Link Fast Ethernet y una Davicom (Integrada) Fast Ethernet.
• Sistema Operativo Debian GNU/Linux Sarge 3.1. (Kernel 2.6.8).
• Iptables 1.2.10
La elección del Sistema Operativo, fue un poco complicada ya que se tenía experiencia en el uso de Mandrake Linux 10.0, pero la máquina en la que se trabajaba era un tanto limitada en cuanto a hardware, por lo que se optó usar Debian, debido a que ofrece un mejor aseguramiento de calidad en sus paquetes (aunque la versión usada en ese entonces era Testing), así como un esquema de actualización sencillo y eficiente (apt-get, aptitude), apego a los estándares, utiliza pocos recursos, da un nivel aceptable de seguridad por defecto, entre otros.
Debian GNU/Linux, además es el Sistema Operativo Libre por defecto de la mayoría de los administradores de red avanzados en casi todo el mundo, salvo por los que usan tecnologías BSD (FreeBSD) y sistemas con tecnologías SUN Microsystems, que son mas caras y mas difíciles de utilizar.
La instalación tanto del Sistema Operativo y software utilizado no se detallaran en este informe ya que no se considera un tema relevante.
C.- El Script.
Un Script de iptables es un conjunto de ordenes que el sistema va leyendo y a la vez interpretando, por cada línea que este posee y que además se guarda en un archivo. Un Script de Firewall con iptables generalmente posee:
• La carga de módulos necesarios (los imprescindibles y los auxiliares, como el de Masquerade.
• Establece algún bit, como por ejemplo activar el Forward en el Kernel.
• Luego borra todas las reglas actuales (Flush).
• Establece las políticas por defecto para la aceptación, denegación, reenvío y salida de paquetes.
• Y finalmente va aplicando todas las reglas de Firewall.
El orden de algunos puntos no tiene por que ser siempre así. Por lo general, se usa la política de CERRAR todo por defecto e ir abriendo lo que se necesite, aunque es mucho más complejo. El Script además debe ser guardado en un archivo de texto plano con algún nombre fácil de recordar (por ejemplo firewall.sh), además este archivo debe tener atributos de ejecución, el cual se lo damos con el comando chmod (se debe estar como root):
# chmod +x firewall.sh
Por último si queremos que el Script se ejecute automáticamente cada vez que se encienda la máquina, se debe poner la siguiente línea en el archivo rc.local, obviamente debemos crear un link simbólico del archivo firewall.sh en /etc/init.d/ con el comando ln –s.
Lo anterior se hace de la siguiente manera. /etc/init.d/firewall.sh
D.- Topología de Red.
Como podremos ver en la figura 3, el Firewall posee dos interfaces de red, una que esta conectada al Router y otra que va hacia el Switch principal de la red local, la interfaz eth0 posee una IP pública, la que es proporcionada por los funcionarios de Telefónica quienes configuraron el Router. La interfaz eth1 está conectada el Switch principal de la red local, por lo que podemos decir que la red local está detrás del Firewall, por lo tanto está protegida. El módem solo cumple con hacer la conexión a Internet. Por defecto la topología usada es de tipo estrella, [Roja, 02b].
Para los equipos de la red local, su configuración de red debe ser la siguiente:
• IP: 192.168.1.X, donde la X pertenece a un número entre 2 y 254, no se deben repetir.
• Mascara de Subred: 255.255.255.0
• Puerta de Enlace: 192.168.1.1
• DNS: 200.54.144.227
• Host: chanco, en caso de ser Windows 98 o 95.
• Dominio: tie.cl, en caso de ser Windows 98 o 95.
Es bueno recordar que las direcciones IP públicas, asignadas (200.68.60.1 y 200.68.60.2), son estáticas, ya que se cuenta con un enlace dedicado. De esta manera se hace más fácil la configuración del Firewall, porque así no se estaría cambiando la dirección IP de la interfaz eth0 cada vez que se realice la conexión a Internet.
Figura 3. Topología de red usada para la conexión del Firewall. E.- Explicación del Script.
A continuación se mostrarán los puntos más importantes del Script creado, el Script completo se muestra en el anexo 7.1 del informe. Las líneas que comienza con “#” indican un comentario y no son tomadas en cuenta por el sistema.
Con esta línea indicamos que el archivo es un Script de Bash (Terminal Linux) y que debe ser leído línea a línea por el sistema:
#!/bin/bash
Debemos activar el Bit de Forward en el Kernel para el reenvío de paquetes. Esto permitirá a la maquina que actué como Gateway y así reenviar paquetes con origen remoto y destino remoto. echo 1 > /proc/sys/net/ipv4/ip_forward
Se deben limpiar todas las reglas de las tablas si es que existiesen, de lo contrario el Script no tendría efecto.
iptables –F iptables -X iptables -Z iptables –t nat –F
Se definen las políticas por defecto, estas son: todo lo que entra, sale y se reenvía es aceptado. En algún momento del documento dijimos que todo el tráfico entrante estaba bloqueado, pero si nos fijamos en el Script, tenemos la política INPUT por defecto aceptada, esto no quiere decir que el tráfico entrante será aceptado, si no que solamente se aceptará las políticas que se declaren en el Script del Firewall (como por ejemplo la política para aceptar la entrada de paquetes por la interfaz localhost), por lo que no tendrá mayores inconvenientes. Es súper importante entender esto ya que puede traer confusiones. No porque se tenga INPUT aceptado, todo va entrar.
iptables –P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables –P FORWARD ACCEPT
Haremos uso de la tabla NAT y aceptaremos los paquetes antes y después que se enruten. Con PREROUTING podemos manipular el paquete modificando sus datos de destino, y de esta manera podemos hacer por ejemplo redirigir a otra maquina o a otro puerto, Esto se conoce como DNAT (Destination Network Address Translation), [Mancill, 03b].
Con POSTROUTING se pueden manipular los datos de origen de un paquete. Aquí podemos realizar SNAT (Source Network Address Translation), es decir, manipular los datos de origen del paquete13.
iptables -t nat -P PREROUTING ACCEPT iptables –t nat -P POSTROUTING ACCEPT
Como dijimos anteriormente el acceso desde Internet a nuestra red no está permitido por defecto, salvo a las direcciones IP que se especifiquen.
En nuestro Firewall se especificaron algunas direcciones IP, a las cuales se les permite el acceso debido a que las máquinas de nuestra red deben ser revisadas, como lo es el caso del Sismógrafo, el cual es monitoreado por personal de la Universidad de Chile, los que recogen información a través de FTP y Telnet.
Esto se debe hacer usando redirecciones de los puertos y haciendo NAT, enviando los paquetes a las máquinas especificadas.
Acceso al Sismógrafo desde la Universidad de Chile, aceptando como IPs de origen las siguientes: 146.83.8.186, 146.83.8.235 y 146.83.8.252 y redirigiendo a los puertos 21 (FTP) y 23 (Telnet) de la maquina 192.168.1.80 (IP de clase C usada en la red local) que pertenece al Sismógrafo.
Por ejemplo, la maquina con IP 146.83.8.186 hace una petición al puerto 21 a la IP 200.68.60.1, que es la del Router, esta petición pasa al Firewall, ya que pasa por la interfaz eth0, el cual según sus reglas evalúa la petición, entonces se comprueba que es una IP de origen valida, que el protocolo es TCP y que la petición se hace a un puerto válido, o sea 21, entonces llegamos al “-j” que dirá lo que se hará con el paquete , en este caso es hacer un DNAT (Traducción de Dirección de Red Destino), la cual es la maquina 192.168.1.80 de la red local, redirigiéndolo al puerto 21. La explicación para las demás reglas es la misma, solo cambian las direcciones IP.
iptables –t nat –A PREROUTING –s 146.83.8.186 –i eth0 –p tcp –dport 21 –j DNAT –to 192.168.1.80:21
iptables -t nat -A PREROUTING -s 146.83.8.186 -i eth0 -p tcp --dport 23 -j DNAT --to 192.168.1.80:23
iptables -t nat -A PREROUTING -s 146.83.8.235 -i eth0 -p tcp --dport 21 -j DNAT --to 192.168.1.80:21
iptables -t nat -A PREROUTING -s 146.83.8.235 -i eth0 -p tcp --dport 23 -j DNAT --to 192.168.1.80:23
iptables -t nat -A PREROUTING -s 146.83.8.252 -i eth0 -p tcp --dport 21 -j DNAT --to 192.168.1.80:21
iptables -t nat -A PREROUTING -s 146.83.8.252 -i eth0 -p tcp --dport 23 -j DNAT --to 192.168.1.80:23
También debemos permitir el acceso a SMC que es una empresa de la ciudad de Concepción encargada de actualizar un Sistema de Información utilizado en la Municipalidad. En este caso es solo una IP (216.241.23.178) que se conecta a diferentes puertos (3389, 4899 y 1433).
La regla aquí es la siguiente: si llega una petición con origen (-s) 216.241.23.178 por la interfaz eth0 (la que esta conectada al Router), con protocolo TCP (-p tcp) y con puerto destino 3389
(--dport 3389, en este caso), por regla el paquete (-j), será redirigido (DNAT) a (--to) la IP 192.168.1.254 al puerto 3389.
iptables -t nat -A PREROUTING -s 216.241.23.178 -i eth0 -p tcp --dport 3389 -j DNAT --to 192.168.1.254:3389
iptables -t nat -A PREROUTING -s 216.241.23.178 -i eth0 -p tcp --dport 4899 -j DNAT --to 192.168.1.254:4899
iptables -t nat -A PREROUTING -s 216.241.23.178 -i eth0 -p tcp --dport 1433 -j DNAT --to 192.168.1.254:1433
Si alguna IP con origen remoto (Desde Internet) o de origen local (Red Local) hace una petición a algún puerto o servicio a través de la IP 200.68.60.1 y no se encuentra en las reglas que se evalúe, simplemente no se le responderá. Esto se debe a las políticas por defecto establecidas.
En el caso que deseemos detener la conexión a Internet de alguna maquina de la red local, se debe aplicar la siguiente política.
iptables -A OUTPUT -s 192.168.1.47 -j REJECT
#iptables –A OUTPUT –s 192.168.0.0/24 –j REJECT # Dejamos toda la red sin Internet.
Esto es, lo que venga (paquetes) con origen local y destino remoto (OUTPUT), con fuente 192.168.1.47 simplemente se rechazará (REJECT). Podemos ver la segunda línea comentada (·”#”), esta solo se descomentará cuando queramos dejar a toda la red local sin Internet.
En algunos casos haremos uso de REJECT y DROP para rechazar paquetes, la diferencia entre estas dos políticas es que REJECT envía una respuesta al cliente, diciendo que por ejemplo el puerto está cerrado, en cambio DROP, simplemente no envía nada y el cliente recibe la respuesta de puerto cerrado por el timeout de su aplicación cliente.
Aceptaremos las conexiones al localhost, esto sirve para hacer conexiones locales, como por ejemplo si tenemos un servidor MySQL, PostgreSQL o Web corriendo en la máquina.
iptables –A INPUT -i lo -j ACCEPT
Algo muy importante es denegar las peticiones de ping o lo que es lo mismo la petición de paquetes del tipo ICMP 8 (echo request), lo cual algunas personas podrían usar para saber si la maquina que hace de Firewall “esta viva”, algo que en muchos casos no es conveniente.
Podemos ver el uso de DROP en este caso, ya que no tendría sentido usar REJECT, ya que el cliente sabría que esos paquetes se están bloqueando.
En el apartado 4.2 explicaremos la configuración de un servidor FTP para uso exclusivo de la red local, entonces en este caso debemos cerrar el puerto que utiliza FTP (20 y 21), de manera que no sea accesible desde Internet. También hacemos uso de políticas DROP sobre INPUT.
iptables -A INPUT -i eth0 -p TCP --dport 20 -m state --state NEW -j DROP iptables –A INPUT -i eth0 -p TCP --dport 21 -m state --state NEW -j DROP
También bloqueamos los servicios de SSH (Secure Shell), X11 (Uso de interfaces X en Linux) y rpcbind (Servidor que gestiona la comunicación entre servidores y clientes NFS) respectivamente. iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW -j DROP
iptables -A INPUT -i eth0 -p TCP --dport 6000 -m state --state NEW -j DROP iptables –A INPUT -i eth0 -p TCP --dport 111 -m state --state NEW -j DROP
Ahora llegamos a un punto importante del Script. Aquí es donde permitimos la salida de la red local (LAN) a Internet haciendo el uso de NAT y el filtro POSTROUTING. Como podemos ver le indicamos como fuente “-s” la IP de la red (192.168.1.0) con su respectiva máscara (/24).
El uso de MASQUERADE permite que el servidor con GNU/Linux conectado a Internet comparta su conexión, para esto los PCs que van a usar la conexión deben estar conectados al servidor, en esta caso están conectados a través de la interfaz eth1 que es la que está conectada al Switch Principal.
Esto permitirá que los paquetes salgan por la interfaz eth0 (-o eth0).
De esta manera las maquinas accederán transparentemente a Internet ocultándose tras la maquina que hace de Gateway (que también es el Firewall), [Mancill, 03c].
iptables –t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
Por último denegaremos algunas Páginas Web que presentan contenidos no apropiados para una institución como lo es la Municipalidad, nos referimos a páginas con contenido pornográfico, satánico, juegos online, chats, descargas directas, programas P2P, etc., en conclusión todo lo que pueda distraer la imaginación de la persona y que no se adecue a tareas laborales.
La manera de hacer esto es relativamente fácil, así que solo se mostrará un ejemplo de bloqueo, ya que la lista de páginas bloqueadas es demasiado larga.
Es bueno recordar que si queremos agregar mas páginas solo se debe agregar la línea al final del Script y luego reiniciar el Firewall. Se añadirán tantas líneas como página encontremos.
Para bloquear una página se añade a la cadena FORWARD la dirección IP destino, en este caso la página. Para saber que dirección IP posee alguna página en especial, podemos hacer un ping a la dirección, por ejemplo para bloquear www.elchat.com, en una línea de comandos escribimos: ping elchat.com, el cual nos responderá con la dirección IP que corresponde a dicha pagina. Otra forma de hacerlo en GNU/Linux es usando el comando host, dándole como parámetro la dirección de la página, por ejemplo: host www.elchat.com, y luego nos entregará la IP que esta posee. Para rechazar el paquete podemos usar tanto REJECT como DROP, eso queda a criterio del administrador del sistema.
# denegar acceso a elchat.com
iptables –A FORWARD -d 200.76.33.27 -j REJECT
F.- Uso de iptraf para el monitoreo de la red.
Una vez que el Firewall esté funcionando, podemos utilizar herramientas de monitoreo para ver el comportamiento de la red, esto es de gran ayuda, ya que podemos ver o tener una idea de la cantidad de tráfico tanto TCP como UDP, que entran o salen por nuestra red.
También podemos darnos cuenta a que página entran los usuarios de la red local, es decir, a los puertos que se conectan para hacer transferencias de paquetes, todo esto a nivel de aplicaciones, ya que físicamente es difícil saberlo.
Para este caso, usamos IPTraf, que es una herramienta para consola basada en texto, la cual puede interceptar paquetes sobre la red y entrega información actual sobre el tráfico IP. Además esta herramienta es de uso libre y no se requieren licencias14.
Esta herramienta es muy recomendada por los administradores de red, en ella podemos ver la cantidad de paquetes que salen o entran por alguna interfaz en común o si queremos una vista general de todo el tráfico, también podemos ver las direcciones IP a las que se conectan los clientes, entre otras cosas.
Cabe recordar que el servidor que hace de Firewall (y FTP), es accedido también de manera remota usando una conexión segura y encriptada a través de SSH15 (Secure Shell), así podemos configurar los diferentes servicios sin estar interactuando directamente con la máquina. Esta política es solo usada en la red local, por considerarse una posible vulnerabilidad para la red.
14 Ver, IPTraf, IP Network Monitoring Software, http://cebu.mozcom.com/riker/iptraf/
Podemos ver una screenshot de IPTraf trabajando en la figura 4.
Figura 4. IPTraf entregando información actual sobre el tráfico IP de la red. 4.2.- Configuración de Servidor FTP en GNU/Linux.
A continuación se explicará la forma en que se desarrolló la solución propuesta, comenzando con un marco teórico y las etapas realizadas.
4.2.1.- Marco teórico.
A.- El protocolo FTP (File Transfer Protocol).
El protocolo FTP, que en español significa Protocolo de Transferencia de Archivos, permite la transferencia de archivos de un computador a otro, bajo un control que es ejercido por un software que hace de Servidor y su respectiva configuración. Seguido de esto encontramos al cliente FTP, que es capaz de conectarse al servidor y realizar tareas que solo son permitidas por el servidor. Para establecer una comunicación mediante FTP entre dos máquinas (aunque también puede ser localmente o entre servidores FTP), se debe pasar por un proceso de autentificación, es decir, el servidor solicita un nombre de usuario y una contraseña, previamente establecidas en algún archivo de configuración, aunque la comunicación sea anónimamente se debe especificar un nombre de usuario y contraseña16.
En muchos casos la conexión establecida no es segura, pero es muy difícil realizar ataques a los servidores FTP a través de este mismo protocolo, a no ser que se trate de vulnerabilidades en los Servidores (a nivel de software), que por lo general siempre hay, pero que son parchadas rápidamente por los desarrolladores, [Hatch, 03a].
B.- Hardware a utilizar.
La máquina donde está el servidor, es la misma que utilizamos en la configuración del Firewall y creemos que cumple con los requisitos necesarios para este propósito. El único impedimento es que el Disco Duro es un poco Pequeño (2GB), pero esto se soluciona simplemente agregando otro disco duro a la máquina de manera que tendremos mas espacio para alojar los archivos, aunque los archivos a compartir son en la mayoría pequeños, por tratarse de documentos de texto.
Al instalar otro disco duro en la maquina se debe crear una nueva partición, por lo general los sistemas de archivos utilizados son ext3 y etx2, pero ReiserFX, también es una buena opción. Luego de crear la partición, lo mejor es especificar que archivos irán a esa partición. Lo mas obvio es que si tenemos el uso de FTP, los archivos transferidos vallan todos a esa partición, para esto se debe especificar que “/home/ftp”, del primer disco duro (hda), este en la partición “/” (raiz o root) del segundo disco duro (hdb), es decir que el “/home/ftp”, quedará en hdb1.
C.- Software a utilizar.
El software utilizado es ProFTPD que es el servidor FTP que trae por defecto Debian GNU/Linux, aunque pondríamos utilizar muchos mas (vsftpd, pure-ftp, etc.), pero este en especial cumple con todas las características que buscamos, además posee un archivo de configuración fácil de entender ya que es amigable para la persona que lo configura o modifica. Tiene archivos de configuración para permitir el ingreso de usuarios así como también denegarlos (allow y deny). Otro factor importante a considerar es que ProFTPD es totalmente libre y gratuito, por lo que está libre de licencias comerciales y su uso es totalmente libre ya que esta licenciado bajo la Licencia Pública General (GPL) de GNU17, además se puede modificar su código fuente para adaptarlo a nuestras propias necesidades (pero eso es un tema aparte).
La instalación de ProFTPD es muy sencilla, para nuestro caso ya tenemos las fuentes del apt-get configuradas en sources.list por lo que solo debemos poner en una línea de comandos:
# apt-get install proftpd
Si en algún caso nos pide archivos de dependencias simplemente aceptaremos todo poniendo “S” o “Y” según sea el caso. Las dependencias por lo general son archivos o programas necesarios para la correcta utilización del paquete que se quiere instalar.
Con lo anterior ya podemos tener nuestro servidor en marcha, pero es necesario hacer unas pequeñas modificaciones a sus archivos de configuración y adaptarlos a nuestras necesidades. 4.2.2.- Etapas realizadas.
A.- Configuración y puesta en marcha de ProFTPD.
El servidor ProFTPD cuenta con un fichero de configuración principal, llamado proftpd.conf, en donde se configuran todos los parámetros del servidor, como por ejemplo el nombre del servidor, el tipo de servidor, etc. Este archivo lo podemos encontrar en la mayoría de las distribuciones en el directorio /etc/proftpd.conf. Existen más archivos de configuración que se usan a partir de las necesidades del servidor, y que en este caso no serán necesarios18.
Para poner en marcha el servidor, se debe levantar el servicio. En nuestro caso el servicio se levanta a través de una línea de comandos con privilegios de root, lo mismo ocurre para detenerlo, [Petersen, 01d].
Se especifica la ruta /etc/init.d/, que es en donde están la mayoría de los servicios en máquinas que poseen GNU/Linux, es decir, que la mayoría de los servicios se pueden manejar de esta manera.
Para levantar o iniciar el servicio: # /etc/init.d/proftpd start
Para detener el servicio: # /etc/init.d/proftpd stop
Cada vez que hagamos cambios en el archivo principal de configuración (proftpd.conf) se debe reiniciar el servicio para que los cambios hagan efecto, esto se hace de la siguiente manera: # /etc/init.d/proftpd restart
B.- Fichero de configuración de ProFTPD.
A continuación se explicará el fichero de configuración proftpd.conf que se utilizó en nuestro servidor FTP de uso interno.
En primer lugar dejamos como comentario las primeras líneas para explicar un poco de que se trata, el tipo de configuración, etc.
# Fichero de configuración básico de ProFTPD. # FTP de uso interno.
# I. Municipalidad de Chanco. # Luis Vega M. / [email protected]
Indicamos el nombre del servidor, el cual se mostrará cuando un cliente se conecte al servidor.
ServerName "FTP. Municipalidad de Chanco."
Algo muy importante es indicar el tipo de servidor, en nuestro caso lo tenemos configurado para que el servicio corra en standalone. Si se el servidor se deja como standalone, este corre normalmente por el sistema y cuando alguien lo solicita simplemente le abre una conexión, es decir, siempre está esperando una solicitud de login19.
La otra forma es dejarlo como inetd, el cual el servidor corre bajo un demonio llamado también superserver o demonio de Internet, lo malo de esto es que el servidor no se está ejecutando constantemente.
# ServerType inetd
ServerType standalone
Indicamos el servidor por defecto, no existen más directivas, simplemente se deja tal como viene, ya que no hay mas servidores FTP corriendo en nuestra máquina.
DefaultServer on
Activamos la opción de resumir, esto quiere decir que si alguien en algún momento está transfiriendo algún archivo y cancela la transferencia, podrá seguir transfiriendo desde el último porcentaje que había quedado en al última transferencia, algo muy útil por lo demás.
AllowStoreRestart on
Indicamos el puerto por el cual es servidor será accedido, por defecto los servidores FTP se acceden a través del puerto 21, así que dejamos la línea por defecto.
Port 21
Se usa Umask 022 como un estándar para prevenir que lo nuevos directorios y archivos se creen con permisos de escritura para el grupo y otros, se deja por defecto por políticas de seguridad.
Umask 022