TUC-315 Habilitación Profesional

Anuncio
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.
Talca, Junio de 2005.
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é.
•
A mis Amigos, que siempre confiaron en mí y me dieron su ayuda cuando la 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
7.6.- Documentos Práctica……………………………………………………………………… 72
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
Figura 21. Inscripción de Práctica Profesional…………………………………………………………. 73
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.
1
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.
2
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.
3
- 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.
4
- 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.
•
12 Impresoras de Tinta, para los diferentes departamentos.
5
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].
6
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.
7
2.2.- CREACIÓN DEL FIREWALL ALTERNATIVO EN GNU/LINUX.
1
En la mayoría de las organizaciones la seguridad es una parte más de la red y del sistema .
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
2
red, de esta manera definiremos las políticas o reglas que tendrá nuestro Firewall . 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
2
Ver, Cortafuegos para redes. Filtrado de paquetes, http://dns.bdat.net/documentos/cortafuegos/x26.html
Ver, Instalación de un Firewall, http://www.glib.org.mx/article.php?story=20030330191547238
8
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
3
4
una gran cantidad de preguntas en listas de discusión de Linux en general y Debian .
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
4
Ver, The Linux Home Page, http://www.linux.org
Ver, Debian, The Universal Operating System, http://www.debian.org
9
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
5
archivos, tanto en Windows 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.
5
Vea, Web Oficial de Microsoft, http://www.microsoft.com
10
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
6
tecnologías de la información (NTI) .
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
7
aspectos se nombran a continuación .
6
7
Ver, Guía Web 1.0, http://www.guiaweb.gov.cl/
Ver, Guía Web 1.0, Capítulo 1, http://www.guiaweb.gov.cl/guia/capitulos/uno/index.htm
11
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
12
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.
13
- 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.
14
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
8
GNU/Linux y la seguridad de sistemas . 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).
8
Ver, Linux - Discusión de Linux en Castellano https://listas.inf.utfsm.cl/mailman/listinfo/linux
15
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.
16
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.
17
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
9
ejemplo hacer NAT . 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
18
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
10
trabajo al subsistema de QoS (Quality of Service) de GNU/Linux .
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
11
dentro de una tabla IP consiste en un número de clasificadores y una acción asociada .
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.
12
Una regla se compone de varias partes .
•
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
Ver, Web Principal de IPTables, http://www.iptables.org
12
Ver, http://www.elrincondelprogramador.com/default.asp?pag=articulos/leer.asp&id=14
11
19
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).
•
-d [destino]: dirección destino del paquete.
20
•
-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.
21
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
22
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.
23
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
13
paquete .
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.
13
Ver, http://www.glib.org.mx/article.php?story=20030330191547238
24
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 (--
25
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.
iptables –A INPUT -p ICMP --icmp-type 8 -j DROP
26
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.
27
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
14
esta herramienta es de uso libre y no se requieren licencias .
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 SSH
15
(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
15
Ver, IPTraf, IP Network Monitoring Software, http://cebu.mozcom.com/riker/iptraf/
Ver, Página principal del proyecto OpenSSH, http://www.openssh.com/
28
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
16
nombre de usuario y contraseña .
16
Ver, Presentación de ProFTPD, http://bulma.net/body.phtml?nIdNoticia=1344&nIdPage=4
29
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
17
Pública General (GPL) de GNU , 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
17
Ver, GNU Project Web Server, http://www.gnu.org
30
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
18
necesidades del servidor, y que en este caso no serán necesarios .
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.
18
Ver, http://es.tldp.org/Tutoriales/doc-servir-web-escuela/doc-servir-web-escuela-html/proftpdconfig.html
31
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
19
decir, siempre está esperando una solicitud de login .
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
ServerType
inetd
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
19
022
Ver, ProFTPD, http://www.escomposlinux.org/lfs-es/blfs-es-5.1/content/proftpd.html
32
Para prevenir ataques DoS (Denegación de Servicios), establecemos un límite de 30 procesos hijo,
así no se harán tantas peticiones en algún tiempo determinado [Hatch, 03b].
MaxInstances
30
Especificamos el usuario y grupo bajo el cual el servidor es ejecutado. Para este caso es cualquier
usuario y cualquier grupo de usuarios.
User
Group
nobody
nogroup
Otro factor importante es que los usuarios que se conecten al servidor FTP solo puedan ver su
directorio raíz y sus subdirectorios, es decir, que no se les permita recorrer toda la jerarquía de
directorios del sistema (es a lo que se llama enjaular o hacer chroot del usuario), ya que puede
representar un factor de peligro para el sistema, debido a que el cliente puede tener acceso a
todos los archivos del sistema de archivos y ver, por ejemplo ficheros de configuración de otros
servicios. Podemos evitar esto añadiendo la siguiente línea:
DefaultRoot ~
Algo que también se usa mucho es permitir sobrescribir archivos, para que así los clientes puedan
reemplazar archivos con el mismo nombre, suponiéndose que se trata de alguna actualización del
archivo, etc. Cuando un archivo está a punto de sobrescribirse, el servidor envía un mensaje al
cliente, avisando el posible reemplazo del archivo.
Debemos aclarar que cada usuario tiene o crea un directorio en el servidor donde puede guardar
sus datos, para así evitar que otros usuarios remplacen archivos que no les pertenecen.
AllowOverwrite
on
Podemos añadir una infinidad de opciones en nuestro servidor, pero sin embargo, la configuración
mostrada anteriormente es necesaria para los fines que buscamos, la cual se puede decir que es
20
bastante básica .
C.- El cliente FTP.
Para que un usuario pueda conectarse al servidor, debe existir dicho usuario en el sistema, esto es
parte de la política de ProFTPD y de la mayoría de los servidores FTP que corren bajo un sistema
GNU/Linux. Es por esto que se tuvo que añadir un usuario al sistema usando los siguientes
comandos.
Se debe estar en una terminal (Bash o Eterm por ejemplo, que son las más utilizada en
GNU/Linux) con privilegios de root, de otra manera no podremos añadir el usuario.
20
Ver, Montar Servidor FTP, http://www.linuxdata.com.ar/index.php?idmanual=ftpsers.htm&manuale=1
33
# adduser chanco
Añadiendo usuario chanco...
Adding new group `chanco' (1001).
Adding new user `chanco' (1001) with group `chanco'.
Creando el directorio home /home/chanco.
Copiando archivos desde /etc/skel
Enter new UNIX password: municipalidad
Retype new UNIX password: municipalidad
passwd: password updated successfully
#
Se añadió el usuario chanco con contraseña municipalidad, entonces ahora los clientes podrán
conectarse al servidor FTP a través de algún cliente FTP, que es proveído por la mayoría de los
Sistemas Operativos disponibles. El servidor requerirá un nombre de usuario y una contraseña y tal
como vimos anteriormente se debe usar como nombre de usuario “chanco” y como contraseña
“municipalidad”.
Ahora veremos las distintas formas en que los clientes se pueden conectar al servidor:
1.- Usando una terminal y conectándose a través de comandos que FTP provee en la mayoría de
los Sistemas Operativos y que son estándar. En Linux podemos usar la terminal Bash y en
Windows el conocido D.O.S. para Windows 95/98 y Me) y cmd usado en Windows 2000/XP y NT.
Ejemplo de conexión desde el Bash de Debian GNU/Linux:
# ftp localhost
Usuario [anonymous]: chanco
Contraseña:*************
Buscando localhost
Conectado a localhost:21
220 ProFTPD 1.2.10 Server (I. Municipalidad de Chanco.) [127.0.0.1]
USER chanco
331 Password required for chanco.
PASS xxxx
230 User chanco logged in.
215 UNIX Type: L8
200 Type set to I
257 "/" is current directory.
ftp> ls
Cargando listado de directorio / desde el servidor (LC_TIME=es_CL)
227 Entering Passive Mode (127,0,0,1,128,56).
150 Opening ASCII mode data connection for file list
226 Transfer complete.
drwxr-xr-x
(?) chanco
4096 abr 01 2005 ..
drwxr-xr-x
(?)
(?)
4096 abr 01 2005 Documentos
drwxr-xr-x
(?)
(?)
4096 abr 01 2005 Imagenes
drwxr-xr-x
(?)
(?)
4096 abr 01 2005 Oficios
ftp>
34
2.- Utilizando el explorador de ventanas, en Windows llamado Explorador de Windows (para el
caso de GNU/Linux, es posible, pero no fue probado), o también por la barra de direcciones que
poseen los navegadores web (Internet Explorer, Firefox, Konqueror, Mozila, Lynx), solo se debe
poner el nombre del dominio que posee el servidor o simplemente poniendo la IP en la barra de
direcciones, eso si, anteponiendo:
•
ftp://ip_servidor
•
ftp://dominio_del_servidor
Al poner ftp://, indicamos que haremos uso del protocolo FTP, lo mismo ocurre cuando abrimos
paginas web, en donde anteponemos http://, que es el protocolo usado para el servicio web.
3.- Por último, la manera mas fácil y la mas usada es con un cliente FTP gráfico, el que se encarga
de hacer las conexiones a través de asistentes y solo es cuestión de ir llenando campos de texto,
[Petersen, 01e].
A continuación veremos el ejemplo de conexión con un cliente gráfico que trae el Escritorio Gnome
21
en GNU/Linux llamado gFTP . La transferencia de archivos se hace simplemente arrastrando los
archivos o directorios que deseemos de una ventana a la otra.
Figura 5. Cliente FTP gráfico bajo GNU/Linux.
Se puede ver que al lado izquierdo está el directorio actual del cliente (directorio local), y al lado
derecho el directorio actual del servidor (directorio remoto) al cual se conectó el cliente.
21
Ver, GNOME Files, Web con todos los paquetes del escritorio GNOME, http://www.gnomefiles.org
35
4.3.- Diseño y Creación de Sitio Web de la Municipalidad.
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.3.1.- Marco teórico.
- Definición del Sitio.
En esta sección se definirán los contenidos que tendrá el Sitio Web, la forma en que se
22
organizarán los módulos y su estructura .
A. Arquitectura de la Información.
Pasaremos a definir los contenidos del sitio, los que fueron elegidos de dos formas:
La primera es basándose en las necesidades que podrían tener los visitantes, es decir, ofrecer
información que las personas por lo general solicitan en la Municipalidad, tales como documentos,
folletos, etc.
La segunda forma fue fijándose en sitios web de similares características y objetivos (sitos web de
municipalidades chilenas), de esta forma tenemos mas claro lo que se quiere lograr.
Los contenidos serán agrupados en secciones, las que tendrán una serie de menús relacionados.
A continuación se detallaran las secciones escogidas y una breve explicación.
•
Banner Principal: muestra el título del Sitio Web, a través de un Banner realizado con
tecnología Flash, en donde se van mostrando imágenes de la comuna e información sobre
la Municipalidad. Está ubicado en la parte superior de la página.
•
Menú de Acceso Directo: es un pequeño menú de forma horizontal en donde se puede
acceder a los contenidos más importantes del sitio (Inicio, Turismo, Festival, Contacto,
Chat). Se muestra bajo el Banner Principal.
•
Menú Principal: aquí se encuentran los contenidos más importantes del sitio, está ubicado
en la parte izquierda de la página y se puede acceder a información relacionada con la
Municipalidad, destacándose la información sobre los distintos departamentos que posee.
22
Ver, Guía Web 1.0, Capítulo 2, http://www.guiaweb.gov.cl/guia/capitulos/dos/index.htm
36
•
Índice Noticioso: ubicado en la parte central de la página, muestra una serie de noticias
relacionadas con la actualidad comunal, así como información sobre eventos realizados en
la comuna. Además en esta parte de la página se van mostrando los menús que contiene
el sitio, técnicamente es un iframe que va cambiando a medida que se acceden a los
diferentes menús.
•
Imágenes: ubicado bajo el menú principal, esta sección muestra accesos directos a
imágenes de eventos realizados en la comuna a través de animaciones en Flash. Mas
abajo podemos ver un acceso a la sección donde se destaca a algún comerciante de la
comuna, y de esta manera dar publicidad a éstos mismos.
•
Destacados: esta es una sección que posee dos subsecciones, donde se destacan temas
relevantes de la comuna, como lo son el Festival de Chanco y el Turismo.
•
Festival 2005: ubicado en la parte derecha bajo el Banner Principal, esta sección muestra
información sobre el Festival de Chanco realizado en el verano.
•
Turismo: ubicado bajo el menú del festival, esta subsección muestra información turística
de la comuna, algo que es de gran importancia para promover el turismo ya que la gran
mayoría de las personas que visitan la página lo hacen para buscar información acerca de
los lugares que posee la comuna.
•
Concejales de la Comuna: algo que muchas páginas sobre municipalidades muestran a
sus visitantes es información acerca de sus autoridades, esto es lo que se pretende con
esta sección. Está ubicada en la parte inferior de la página.
Ahora detallaremos los contenidos de cada una de las secciones a través de un Mapa del Sitio.
Banner Principal
No posee links.
Menú de Acceso Directo
|---> Inicio
|
|---> Índice Noticioso
|---> Turismo
|---> Festival
|---> Contacto
|---> Chat
|---> Ingresar
Índice Noticioso
|----> Índice Noticioso
Imágenes
|---> Festival Chanco 2005
Menú Principal
|---> Inicio
|
|---> Índice Noticioso
|---> Alcaldía
|---> Concejo Municipal
|---> Educación
|---> Salud
|
|---> Plan de Salud 2005.
|---> Turismo
|
|---> Solicitud de Información Turística.
|---> Omdel
|---> Zona Típica
|
|---> Instructivo de Construcción.
|---> El Tiempo
|---> Webmail Municipal
|---> Contáctenos
|---> Chanco Chat
37
|---> Fiesta de la Candelaria
|---> Microempresario Destacado
|---> Productos Aguila
|---> Miel
|---> Polen
|---> Propóleo
|---> Como Consumir el Polen
|
|---> Ingresar
|---> Links de Interés
Concejales de la Comuna
No posee links
|---> Turismo
|--->
|
|
|
|
|
|
|--->
|--->
|--->
|--->
|--->
|--->
|--->
|--->
|--->
Destacados
|---> Festival 2005
|---> Bases
|---> Ganadores 2005
|---> Participantes
|---> Artistas
|---> Venta de Entradas
|---> Fotos XVII Festival
|---> Ganadores 2005
|---> Fotos del Primer Día
|---> Fotos del Segundo Día
|---> Fotos del Tercer Día
|---> Años anteriores
Guía del Turista
|---> Playas
|---> Reservas Nacionales
|---> Museo G. del Carmen
|---> Quesos y Frutillas
|---> Laguna Reloca
|---> Fiesta de la Candelaria
Alojamiento
Donde Comer
Distancias
Mapa de Chanco
Oficina de Turismo
Datos Generales
Fotos de la Comuna
Semana Chanquina
Verano 2005
Figura 6. Mapa del Sitio Web de la Municipalidad.
B. Requerimientos Funcionales
Para ofrecer algunos servicios y hacer que el sitio “haga” algo, debemos especificar los
requerimientos funcionales y así saber el tipo de interacción que el visitante tendrá con el sitio.
Esto requerimientos son:
•
Noticias: es un sistema de noticias en donde el visitante puede leer los acontecimientos
de la comunidad, así como las actividades realizadas o a realizar en la misma. Es
actualizado por lo general cada semana.
•
Solicitud de Información Turística: este es un módulo donde el visitante puede solicitar
información turística sobre la comuna de Chanco, esta solicitud será recibida por el
administrador del sitio, el que luego, enviará el mensaje al Departamento de Turismo para
que envíe la solicitud al visitante, ya sea a través de correo convencional o electrónico.
•
Formulario de Contacto: en este módulo el visitante podrá enviar mensajes a los distintos
Departamentos de la Municipalidad, pero primero el mensaje será evaluado por el
administrador del sitio, y este decidirá si envía o no el mensaje al departamento, ya que
muchas veces los mensajes no tienen nada que ver con temas de la Municipalidad.
•
Chat: es un módulo donde los visitantes del sitio pueden establecer relaciones y conversar
en tiempo real, este módulo en particular es uno de los más visitados a diario.
38
•
Estadísticas del Sitio: muestra información acerca de las visitas que ha tenido la página
desde que se puso en Internet, el país de origen de los visitantes y resúmenes diarios de
visitas. Este módulo no fue programado por el Webmaster, más bien es un servicio gratuito
disponible en Internet, donde existe un sistema de ranking de páginas clasificadas por
categoría, este sitio en particular se encuentra en el ranking de municipalidades chilenas.
C. Estructura del Sitio.
El Sitio Web posee una estructura bastante fácil de comprender, es decir, el visitante que entra al
sitio se le hará fácil ubicar lo que desea buscar. Esto es porque tiene una estructura estándar,
donde se tiene un Banner en la parte superior, los menús se encuentran ubicados en las partes
laterales de la página y en medio posee información actualizada de noticias y los contenidos.
En cuanto a los colores utilizados podemos decir que se usaron principalmente colores claros
(amarillo claro, azul claro, gris en distintos tonos, verde claro, entre otros), ya que estamos
hablando de un Sitio Web formal, en donde los colores se consideran una parte importante del
sitio.
A continuación una muestra de los colores utilizados:
Figura 7. Colores utilizados en el Sitio Web.
Como se puede apreciar los colores principales son bastante claros, las líneas divisoras usan
colores un poco más oscuros y los textos usan colores oscuros, para que puedan ser apreciados
por el visitante.
D. Sistemas de Navegación.
Los sistemas de navegación tienen que ver en como el visitante accede a los contenidos. En la
figura 6 se mostró el Mapa del Sitio, en donde se ve con mejor detalle cada unos de los niveles y
subniveles que posee. Por regla (utilizada por la mayoría de los Webmasters) se debe evitar que
los contenidos estén a más de tres subniveles, de lo contrario, el visitante podría aburrirse de hacer
tantos clicks en las páginas para entrar a algún contenido.
39
El sistema de navegación usado es muy simple, el menú principal está diseñado con imágenes,
que poseen un texto que indica el contenido a visitar.
Todos los demás menús son links de texto, de esta manera hacemos la página mas liviana, ya que
si ponemos menús solo con imágenes, la carga de la página al accederla será muy lento, por lo
tanto el visitante no entrará mas.
Como explicaremos mas adelante, la página posee un iframe en donde se van mostrando los
diferentes contenidos de la página, de esta manera los menús siempre estarán visibles para el
usuario y además ayuda a la programación del sitio ya que no se tiene que programar cada página
con los menús principales, si no que crea el contenido y algún link para volver al menú principal.
E. Diseño Visual.
En esta etapa mostraremos la estructura del sitio en forma de maqueta, sin su diseño final, esto
nos servirá para tener una mejor idea de la forma que tendrá cada página del sitio.
Figura 8. Estructura de la página principal.
Podemos ver que el sitio posee una estructura ordenada, ya que es lo que se busca en cualquier
Sitio Web, es decir, que cuando el visitante entre a la página pueda darse cuenta de inmediato
donde están los contenidos que desea acceder o visitar.
A continuación mostramos los diagramas de flujo sencillos de los requisitos funcionales que
representan transacciones, para así saber la interacción que tendrá el usuario y el administrador
del sitio cuando ocurra una.
40
En el anexo 7.3 B y 7.3 D respectivamente, se muestran las pantallas correspondientes a las
transacciones, así se tendrá una mejor idea de lo que se quiere lograr con los módulos.
Solicitud de información Turística:
Figura 9. Diagrama de flujo, módulo de solicitud de información turística.
Contacto desde el Sitio Web:
Figura 10. Diagrama de flujo, contacto desde el Sitio Web.
Nota: los otros requerimientos funcionales no serán explicados ya que no fueron programados por
el Webmaster, si no que son módulos que ya estaban creados.
41
Por último presentamos el diseño elegido para el sitio. Podemos ver el Banner Principal que va
mostrando imágenes de la comuna y el escudo de Chanco al lado izquierdo. Mas abajo tenemos el
índice noticioso y a los lados tenemos los menús principales y destacados. En esta etapa se puede
apreciar mejor el uso de colores.
Figura 11. Diseño Oficial Sitio Web de Chanco.
La generación de pantallas es más fácil ya que se trata de un sitio estático en general y no tiene
mucho dinamismo, salvo por los módulos funcionales creados.
42
- Diseño Web y Estándares.
A. Estética.
Para que un sitio sea mas fácil de acceder debe ser liviano en cuanto diseño, es decir, lo ideal es
usar imagen y texto en las páginas, pero muchas veces esto hace que el sitio sea muy estático y
poco interactivo. Es por esto que se debe tener una buena relación entre texto, imágenes y
23
animaciones, de manera que no hagamos un sitio sobrecargado .
Este sitio hace una muy buena mezcla entre estos elementos, es decir, un menú principal con
imágenes para resaltar, todos los otros menús son de texto que son más livianos de cargar. Y por
último cuatro animaciones flash relativamente pequeñas, las que son un poco pesadas pero que no
se no se notan en una conexión medianamente rápida.
Por otro lado cualquier página hoy en día se va a demorar en cargar si el visitante usa una
conexión lenta como lo son las de 128kbps o 56kbps que aun se usan, pero en menor cantidad.
El peso de las páginas (no del sitio), debe ser muy liviano, ya que un visitante no esperará tanto
para abrir un determinado vínculo, por ejemplo, la página principal del sitio pesa 27.5KB, lo que es
bastante liviano, por lo que con un módem de 56kbps un visitante no demorará más de 10
segundos en abrir la página. Por lo tanto está dentro de los estándares.
B. Resolución de Pantalla.
Por otra lado existe la resolución de pantalla en que los visitantes miran el sitio, siendo las mas
usados 640x480, 800x600 y 1024x768. Obviamente que el más usado hasta la fecha con un valor
de 90% aproximadamente es la resolución de 1024x768, luego en menor cantidad es 800x600 y
por último que ya casi ni se usa es 640x480, por lo tanto el sitio fue diseñado para 1024x768,
basándose en estadísticas de páginas que son visitadas más de 1000 veces al día.
C. Uso de iframe.
El uso de iframe puede ayudar mucho al visitante, ya que siempre se estará mostrando los menús
del sitio y encabezados, y el visitante en todo momento sabrá donde está ubicado. Lo malo del uso
de iframe o frames en general es que si el visitante llega desde algún enlace de otra página o
desde algún buscador a algún contenido en particular y no a la página principal del sitio
(index.php), el usuario no podrá ver el menú y solo verá el contenido al que accedió. Por esta
razón en cada página de contenidos se debe crear un enlace o link que permita volver a la página
principal y de esta manera el visitante podrá ver el sitio principal.
23
Ver, Guía Web 1.0, Capítulo 3, http://www.guiaweb.gov.cl/guia/capitulos/tres/index.htm
43
D. Meta Tags.
El uso de <meta tags> adecuados, definidos pro la World Wide Web Consortiun
24
(W3C), nos
ayuda a dar una descripción de la página para que así los sistemas de indexación y de búsqueda
tomen los datos y características principales del sitio y los añadan a sus sistemas.
Los <meta tags> utilizados en el sitio fueron los siguientes:
<meta NAME=title CONTENT=I. Municipalidad de Chanco>
<meta NAME=description CONTENT=Sitio Web de la Ilustre Municipalidad de Chanco>
<meta NAME=keywords CONTENT=Playas, Tranquilidad, Turismo, Municipalidad, Chanco,
Reservas Nacionales>
E. Multimedia.
El uso optimizado de las imágenes hace que se cumpla con la norma estándar establecida de
72dpi (72 x 72 pulgadas). Todas las imágenes del sitio están con formato JPG, así se aliviana
mucho mas el peso de estas aprovechando mejor los colores que ellas poseen. Las imágenes
usadas para la estética del sitio, se guardan en un directorio común para tener mucho mas
ordenado los archivos en el sitio. Así mismo, el sitio esta ordenado en un árbol de directorios para
tener mejor acceso a los archivos cuando se modifiquen.
Las animaciones flash muchas veces pueden non verse en el navegador para ello el visitante debe
bajar el respectivo plug-in (extensiones que usan los navegadores web), para poder visualizarlas.
F. Interoperabilidad.
En este apartado nos referimos a que el sitio puede ser accedido desde cualquier plataforma
computacional y Sistema Operativo que posea una conexión a Internet y un navegador web,
incluso navegadores web basados en texto. Para que esto sea posible el sitio ha considerado lo
siguiente:
•
Uso de HTML estándar, ya que todos los navegadores no soportan las nuevas versiones
de HTML
•
El sitio ha sido accedido desde diferentes sistemas operativos, entre los que destacan
GNU/Linux y Windows, en donde no se presentaron problemas. Por el lado de los
navegadores destacan Internet Explorer 5 y 6, Mozilla, Mozilla/Firefox, Opera, Lynx
(basado en texto) entre otros.
24
Ver, The W3C Markup Validation Service, http://validator.w3.org/
44
4.3.2- Etapas realizadas para la puesta en marcha del Sitio Web.
En esta etapa explicaremos los pasos a seguir cuando se termine el desarrollo del Sitio Web para
así efectuar la presentación a los usuarios finales (los visitantes). De esta forma daremos a
conocer el trabajo realizado por los desarrolladores.
A. Prueba de Errores.
En primera instancia cuando se subió el Sitio Web, hubo algunos errores en el tamaño de las
ventanas Pop Up que se programaron, ya que estas contienen imágenes. Veremos un ejemplo de
la ventana con tamaño errado y otra con tamaño correcto en la figura 12.
En la imagen de la izquierda se pueden apreciar las barras de desplazamiento, las cuales por
estética y comodidad para el visitante, no deberían ir. La imagen del lado derecho no muestra esos
errores.
Figura 12. Ventana con tamaño incorrecto y ventana con tamaño correcto.
Por otro lado se hicieron modificaciones a los contenidos creados ya que a veces no se lograba lo
deseado, por ejemplo en caso del formulario de contacto, se estaba logrando el objetivo, es decir,
que el mensaje llegara a nuestro correo, pero mas adelante se decidió que se averiguara la IP del
visitante y el nombre del host que enviaba el mensaje, para saber su procedencia. Lo anterior tuvo
que ser programado en Lenguaje PHP y fue logrado correctamente.
Otra modificación que se hizo fue crear una lista de los distintos departamentos, para que así el
visitante especifique al departamento que quiere enviar el mensaje.
B. Pruebas de Carga.
Las pruebas de carga permiten probar el hardware y software que hostea al Sitio Web, para así
saber cuantos visitantes se pueden tener en línea al mismo tiempo. Esta prueba no ha causado
mayores problemas ya que los visitantes se van alternando a través del día.
45
A través de estas pruebas se puede saber gran cantidad de información acerca de los visitantes y
sus características de acceso, como lo son el ancho de banda utilizado, archivos solicitados,
25
páginas visitadas, datos descargados, etc. . Estos datos se resumen en estadísticas, un ejemplo
de ellas puede verse en la figura 13.
Figura 13. Sistema de estadísticas de visitas del Sitio Web.
C. Hosting.
El sitio está alojado en un hosting comprado en www.fulltime.cl con una capacidad de 400Mb, con
acceso a través de FTP con una cuenta proporcionada por el administrador del hosting.
El sitio se encuentra en un servidor con Windows 2003 Server con soporte para todos los
lenguajes (nosotros usamos PHP y ASP.) y ancho de banda de subida y bajada ilimitado. Por ser
un hosting externo, la seguridad del sitio dependerá exclusivamente del administrador del hosting
quien se encargará de evaluar los archivos que son subidos y su contenido.
D. Nombre de Dominio.
Por otro lado la dirección de la página o nombre de dominio fue comprado en www.nic.cl que es
administrada por la Universidad de Chile y en donde se hace un contrato por dos años.
25
Ver, Guía Web 1.0, Capítulo 4, http://www.guiaweb.gov.cl/guia/capitulos/cuatro/index.htm
46
La dirección comprada es www.chanco.cl, que es la que mejor se adecua al sitio, a sus
necesidades y objetivos. Y obviamente es .CL.
E. Seguridad
En cuanto a la privacidad de los visitantes, esta es bastante segura, ya que los visitantes que
envían mensajes especifican su e-mail y este se mantiene en una lista de contactos y solo son
manejadas por el administrador del sitio, no utilizándose la información para fines comerciales o
para envío masivo de correo.
Y como ya habíamos mencionado antes, el administrador del hosting es el encargado de la
seguridad del sitio, explicaremos una situación que ocurrió.
En algún momento uno de nuestros archivos estaba en riesgo de ser utilizado para generar un DoS
(Denegación de Servicio), ya que se podía enviar masivamente correo. Esta situación fue
inmediatamente avisada al Webmaster por lo que se tuvo que modificar el archivo y subirlo
nuevamente al hosting.
F.- Mantención del Sitio Web.
Sabemos que unos de los objetivos principales del sitio es difundir información y permitir la
comunicación entre la institución y los visitantes por lo tanto se debe estar siempre actualizando el
sitio, de manera que los visitantes sigan accediendo a él, de lo contrario no se tendrá mas visitas.
La mantención del sitio no es una tarea que solo corresponde a los encargados de la creación del
sitio, es decir, el Departamento de Informática, si no mas bien es un compromiso que toda la
institución debe afrontar, ya que en cada unos de los departamentos siempre se están realizando
actividades, reuniones y entregando información a la comunidad y a sus visitantes.
Debido a lo anterior es que los departamentos debieran entregar al Webmaster documentación
relevante acerca de sus actividades para que así él pueda ponerla a disposición de los visitantes.
Tal es el caso del Departamento de Relaciones Públicas que siempre está entregando información
a la comunidad a través de radiodifusión, esta información también es entregada al Webmaster
para que sea puesta en el sitio como una noticia o algún enlace, dependiendo de la importancia.
Las noticias son casi el único motivo para tener actualizado el sitio ya que los visitantes acceden a
él casi exclusivamente a leer las noticias y al Chat, por otro lado esto ayuda a que los mismos
visitantes promocionen la página entre sus conocidos.
47
Otro aspecto que debe tener en cuenta es el Chat, ya que hubo un momento en que el Chat fue
deshabilitado y llegaron muchos correos pidiendo explicaciones de porque se había sacado. Por lo
tanto se llegó a la conclusión que el Chat es usado por muchos “chanquinos” que se encuentran en
otras ciudades de Chile y el mundo para comunicarse, de hecho hubo “chanquinos” radicados en
suecia que han enviado correos de contacto.
G.- Transmisión Festival de Chanco.
Esta tarea tuvo como objetivo transmitir el Festival de Chanco realizado en el verano a través de
Internet utilizando el decodificador de Windows Media Player para hacer el Streaming. Las etapas
se detallan a continuación.
1.- Habilitar la conexión a Internet en el recinto donde se realiza el festival. Para ello se instaló un
cable telefónico desde la Municipalidad hasta el recinto que aproximadamente está a unos 500
metros de distancia. Además se trasladó el Módem y el Router haciendo el recinto para establecer
la conexión a Internet. Todo esto se realizó sin ningún problema.
2.- Abrir el puerto 8080 habilitado en el Firewall interno de la Municipalidad par que los visitantes
puedan conectarse y ver el video que se esta transmitiendo.
3.- Conectar una WebCam al servidor que está haciendo el Streaming e instalar en el mismo el
programa que provee Microsoft llamado Windows Media Player y su codificador que permite hacer
el streaming hacia Internet.
4.- En el momento que se realiza el festival, se debe estar en el Chat explicando a los visitantes
como se debe entrar para poder ver el video, los programas a utilizar y pasos a seguir.
5.- Crear un Banner en el Índice Noticioso para que cuando el visitante entre al sitio pueda ver que
se transmitirá el festival a la hora indicada y además que haga clic en la imagen para poder entrar
al lugar donde se encuentra el streaming. La imagen creada es la siguiente.
Figura 14. Banner de ingreso para ver el video transmitido.
48
6.- Crear una página con dos frames, al lado izquierdo el Chat para ir explicando a los visitantes lo
que ocurre en el Festival y al lado derecho el video del streaming y una imagen del festival que es
actualizada cada dos minutos.
La página que contiene el streaming debe llamar a un objeto de tipo Media Player para poder
insertar el video en la página. A continuación mostramos el código:
<object id="MediaPlayer" width="240" height="180" classid="CLSID:22D6F312-B0F6-11D0-94AB0080C74C7E95"
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,
715" standby="Instalando Windows Media Player ..." type="application/x-oleobject" align="left">
<param name="FileName" value="http://200.68.60.2:8080">
<param name="AutoStart" value="true">
<param name="volume" value="0">
<param name="TransparentAtStart" value="false">
<param name="AnimationatStart" value="false">
<param name="ShowControls" value="false">
<param name="ShowDisplay" value="false">
<param name="ShowStatusBar" value="true">
<param name="autoSize" value="false">
<param name="displaySize" value="false">
<embed type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/"
src="http://streaming.entelchile.net/canal13" width="240"
height="180" autostart="1" volume="0" transparentatstart="0" animationatstart="0"
showcontrols="1" showdisplay="0" showstatusbar="0" autosize="1" displaysize="0"
align="absmiddle">
</embed></object>
•
Primero se indica el tipo de objeto, se le da el ancho y alto que tendrá.
•
Se indica el codebase para que el cliente instale el programa que permitirá ver el video
•
En los <param name> se dan las características que tendrá el video.
•
FileName, se indica la IP y el puerto que esta haciendo el streaming, en este caso es la
dirección del Router que tiene el puerto 8080 abierto.
•
AutoStart, para que reproduzca el video automáticamente conectado, por defecto esta en
true.
•
Volume, esta en 0, permitirá que el visitante controle el volumen (audio) del video.
•
ShowControls, esta en false, no se mostrarán los controles.
•
ShowStatusBar, muestra la barra de estado para indicar lo que esta pasando, esta en true.
•
pluginspage, para poder descargar la extensión del programa Windows Media Player.
•
Los otros detalles son menos relevantes.
Para que un visitante pueda ver el streaming, debe tener instalado el programa Windows Media
Player, que por lo general viene instalado en la mayoría de las Versiones de Windows basadas en
tecnologías NT, como lo son el caso de Windows 2000, XP, NT 4.0, Server 2000, Server 2003, etc.
49
Para los casos de Windows 95 y 98 se debe bajar el programa que por lo demás es gratuito en la
página oficial de Microsoft (www.microsoft.com), además existen versiones en español.
Se eligió este programa para los clientes, ya que es el que usan la mayoría de los visitantes del
sitio según las estadísticas, y es uno de los programas mas usados a nivel mundial para el stream
de video. En el caso de que algún visitante esté usando otro Sistema Operativo que no sea
Windows, existen algunas soluciones para poder ver el video, como por ejemplo bajar
codificadores especiales para la distribución que se está usando, pero esto se dejará a cargo del
visitante y no habrá soporte para ello en la página.
50
V.- CONCLUSIONES.
5.1.- Conclusiones Generales.
Todas las actividades realizadas en el Departamento de Informática de la Municipalidad de Chanco
sirvieron de experiencia y generaron conocimiento al alumno, de los cuales se pueden extraer las
siguientes conclusiones.
•
El Departamento de Informática para una institución pública es de vital importancia ya que
permite dar apoyo a todo el personal y realizar su trabajo con mayor facilidad y perfección.
Además de solucionar problemas con la rapidez que se necesita en esto días, ya que el
tiempo hoy es un recurso muy valorado.
•
La utilización de software libre y de código abierto ayuda a una institución o empresas
relativamente pequeñas a ahorrar muchos costos, ya que no se paga por ninguna licencia
comercial, sólo se necesita a alguien que tenga el conocimiento y sea capaz de manejar
dichos Software o Sistema Operativo.
•
Siguiendo con lo anterior, aclaramos que se debe tener muy en cuenta que el Software
Libre, no es lo mismo que el Software Gratuito, un software puede ser gratuito o freeware
pero no es libre, ya que no entrega sus códigos par poder modificarlos, en cambio el
Software Libre o de Código Abierto (Open Source), si entrega sus código y se puede
modificar para adaptarlo a las propias necesidades de un desarrollador.
•
Como apreciamos en el informe, se pueden integrar muchos de los servicios ofrecidos por
GNU/Linux, en este caso hemos usado herramientas de un Firewall y el Servicio FTP, pero
además de estos tenemos muchos más, los que se pueden implementar en una misma
máquina. Estos servicios pueden ir desde un Servidor de Correo (MTA) hasta un servidor
de impresión de archivos, utilizando SAMBA o alguna herramienta de ayuda como Webmin
o CUPS, todas ellas con respectivos permisos de utilización por parte de los usuarios.
Finalmente una maquina con GNU/Linux puede quedar: Router / Firewall / FTP / Web /
SMTP / POP3 / SSH / DNS / Samba / LDAP y un sin fin de servicios.
•
El desarrollo de sitios web para instituciones, empresas y organizaciones en general, es de
gran ayuda para éstas, ya que permiten mostrarse al mundo y así ganar prestigio, lo que
representa a una organización que va acorde con las nuevas tecnologías de la
información.
51
•
La adquisición de conocimiento y experiencia por parte del alumno es muy importante y
permite enfrentarse a la vida laboral con más seguridad y enfrentar los cambios
tecnológicos con mayor rapidez.
5.2.- Creación de Firewall.
•
La creación de firewalls bajo plataformas Unix, representan una gran solución a pequeñas
y medianas empresas, así como instituciones públicas que no pueden pagar tanto dinero a
administradores calificados como por dispositivos físicos adecuados para la protección de
redes.
•
Una ventaja real de acuerdo con la solución propuesta es que toda la documentación
necesaria para la creación de firewalls en Linux, se encuentra disponible en Internet, esto
quiere decir que está al alcance de cualquier persona o institución.
•
Algunos de los inconvenientes son que no se encuentran muchos administradores de
redes o sistemas computacionales con la capacidad de crear este tipo de soluciones. Algo
que hoy debería ser indispensable por la gran cantidad de PYMEs a nivel nacional e
internacional.
•
La creación de un Firewall no es algo trivial, ya que se debe conocer bien la estructura de
la red que queramos proteger, y que en algunos casos pueden ser varias redes. Es por
esto que cada Firewall se debe adaptar a las necesidades que requiere la red.
•
La definición de políticas de acceso deben estar claras antes de empezar a escribirlas ya
que se puede armar una confusión en donde después no sabremos que hacer, por lo cual
el Firewall no cumplirá con sus objetivos. Quizás podremos usar reglas genéricas, pero no
serán lo suficientemente confiables para la total protección de la red.
•
Un Firewall no representa la solución completa para la protección de la red, es decir, se
debe estar vigilando o monitoreando a cada instante su comportamiento utilizando
herramientas como la antes vista, de esta manera podremos darnos cuenta del real
comportamiento de la red y así hacer las modificaciones correspondientes. El uso de
sistemas de detección de intrusos (SNORT por ejemplo) podría ser una gran alternativa.
52
5.3.- Servidor FTP.
En un principio la creación del servidor FTP, no fue muy bien recibida, ya que fue idea del alumno
en práctica realizar esta actividad, ahora, una vez que fue implementado, tomó una mayor
importancia y se hicieron variadas pruebas para verificar su efectividad.
Uno de los inconvenientes de la solución propuesta fue el desconocimiento por parte de los
usuarios finales. Nos referimos a desconocimientos en general en cuanto al uso de equipos
computacionales, y es algo que aun está vigente en la mayoría de las instituciones públicas.
Lo anterior ocurre porque las instituciones adquieren tecnologías que en primara instancia no se
saben manejar, y aunque existan cursos de capacitación se les será difícil de aprender.
En lo que se refiere al impacto del trabajo realizado para un futuro profesional, podemos ver las
siguientes conclusiones:
•
Una vez más el trabajo en equipos es importante en este tipo de actividades, ya que
siempre se debe estar probando el servicio y viendo pruebas de la utilización real del
mismo.
•
Un servidor FTP, por muy básico que sea, es de gran ayuda para los usuarios de una red,
ya que pueden respaldar sus archivos con seguridad y en cualquier caso de perdida por
parte del usuario (es su computador), tendrá sus archivos en el servidor.
•
El uso de un servidor que puede mantener los archivos de la gran mayoría de los
empleados de la institución, puede ser menos engorroso que estar usando el uso
compartido de carpetas, así el usuario se evita estar compartiendo sus archivos o carpetas
y los demás usuarios no tendrán acceso a los computadores de algún usuario en especial,
a no ser que sea algún caso especial que necesite una conexión directa con algún PC.
•
La configuración y puesta en marcha del servidor, como pudimos darnos cuenta es
bastante sencilla, y es algo al que todos podrían tener acceso, esa es la gran ventaja del
uso de Software Libre y Código Abierto, todo está al alcance.
53
5.4.- Desarrollo de Sitio Web.
•
Como pudimos darnos cuenta, en la explicación anterior, se usó bastante teoría para dar a
entender como se desarrolló el sitio, sin duda, es muy importante usar esta manera de
trabajar ya que ayuda a entender (desde el principio) a los desarrolladores los objetivos del
sitio y de esta manera lograrlos.
•
Desde que el sitio empezó a funcionar en Internet el número de visitas fue bastante buena
en comparación a otros sitios similares, según el ranking de netstadbasic, ubicándose
entre los 10 mejores puestos diariamente con un promedio de 150 visitas diarias
superando incluso a municipalidades de ciudades mas grandes.
•
Un Sitio Web para una institución puede ser de gran ayuda, ya que permite a las personas
interesadas buscar información importante sin trasladarse al lugar físico de la institución
permitiendo ahorrar mucho tiempo.
En cuanto al impacto del trabajo realizado, se puede decir que:
•
Sirve de mucho trabajar en equipos, ya que se logra de una mejor manera los objetivos de
un proyecto en común, y así los clientes quedan conforme con el trabajo realizado.
•
A medida que se van desarrollando nuevas cosas, la experiencia va aumentando, en el
caso de los sitios web, se aprenden muchas cosas, así como se refuerzan otras, como por
ejemplo el uso de animaciones flash o el diseño de imágenes, en donde cada vez se hace
más fácil su desarrollo.
•
Por otro lado cada sitio es diferente en cuanto a su estética y estructura, además cada sitio
cumple objetivos diferentes aunque muchas veces parecidos. Lo anterior es lo que se logra
diferenciar cuando se tiene una amplia experiencia. Es decir, el desarrollador se da cuenta
de inmediato las inquietudes que tiene el cliente, así se logra un mejor trabajo.
54
VI.- BIBLIOGRAFIA.
[Hatch, 03a]
B. Hatch, J. Lee. Hackers en Linux. Capítulo 11, Seguridad del Protocolo
de Transferencia de Ficheros, Historia del FTP, pp. 491-492. Segunda
Edición. Osborne McGraw Hill, 2003.
[Hatch, 03b]
B. Hatch, J. Lee. Hackers en Linux. Capítulo 14, Ataque de Denegación de
Servicios (DoS), pp606. Segunda Edición. Osborne McGraw Hill, 2003.
[Petersen, 01a]
R. Petersen. Linux Manual de Referencia. Capítulo 38. Administración de
Redes TCP/IP. Conjunto de Protocolos TCP/IP, pp. 1025-1026. Segunda
Edición, Osborne McGraw Hill, 2001.
[Petersen, 01b]
R. Petersen. Linux Manual de Referencia. Capítulo 39. Seguridad de Red:
Firewall y Cifrado. Netfilter: IPTables y NAT (Kernel 2.4 y 2.6), pp. 10721074. Segunda Edición, Osborne McGraw Hill, 2001.
[Petersen, 01c]
R. Petersen. Linux Manual de Referencia. Capítulo 7. Configuración de los
Sistemas de Seguridad. Configuración de un Firewall sencillo con IPTables
(Kernel 2.4.x y 2.6.x), pp. 137-142. Segunda Edición, Osborne McGraw
Hill, 2001.
[Petersen, 01d]
R. Petersen. Linux Manual de Referencia. Capítulo 24. Servidores FTP.
Professional FTP Deamon (ProFTPD), pp. 605-606. Segunda Edición,
Osborne McGraw Hill, 2001.
[Petersen, 01e]
R. Petersen. Linux Manual de Referencia. Capítulo 16. Clientes FTP, pp.
413-414. Segunda Edición, Osborne McGraw Hill, 2001.
[Roja, 02a]
J. Roja, C. Roja. Redes Locales. Capítulo 1. Conceptos Básicos. Que es
una red LAN, pp. 20, Alfaomega Ra-Ma, 2002.
[Roja, 02b]
J. Roja, C. Roja. Redes Locales. Capítulo 2. Topología de las Redes.
Configuración Estrella, pp. 39-40, Alfaomega Ra-Ma, 2002.
[Vidal, 03]
F. Vidal, P. Santamaría, J. Camus, P. Saavedra. Guia Web 1.0. Guía para
el desarrollo de Sitios Web, Introducción, pp. 4. Gobierno de Chile,
Ministerio Secretaría General de Gobierno, MSSG, 2003.
[Mancill, 03a]
T. Mancill. Routers en Linux. Capítulo 1, Bloques Fundamentales del
Enrutamiento, Hardware de un Router, pp. 3-16. Segunda Edición. Prentice
Hall, 2003.
[Mancill, 03b]
T. Mancill. Routers en Linux. Capítulo 9, Router de Servicios, Redirección
Remota con DNAT, pp. 386-387. Segunda Edición. Prentice Hall, 2003.
[Mancill, 03c]
T. Mancill. Routers en Linux. Capítulo 4, Erbium : Un Router para Extranet,
Enmascaramiento y NAT con netfilter, pp. 145-146. Segunda Edición.
Prentice Hall, 2003.
55
VII. ANEXOS.
7.1.- Fichero de Configuración del Firewall (firewall.sh).
#!/bin/bash
## Script de Proteccion.
## I. Municipalidad de Chanco
## Luis Vega. ([email protected])
## eth0: conectada al modem (RDSI)
## eth1: conectada al hub que mira la red local
# Activando el forward en el Kernel
echo 1 > /proc/sys/net/ipv4/ip_forward
echo -n Aplicando Reglas de Firewall...
## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
## Politicas por defecto
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
# ------------------------------------------------------------------------------------# Redirecciones, Desde la U. de Chile
# Desde 146.83.8.186 , .252, .235, al puerto 23 y 21 de la maquina 192.168.1.80 (LAN)
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
# Desde SMC
# Desde la 216.241.23.178 al puerto 3389,4899,1433 a la maquina 192.168.1.254
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
# ------------------------------------------------------------------------------------# Detener Equipos
#iptables -A OUTPUT -s 192.168.1.47 -j REJECT
# Dejo el localhost (para conexiones locales)
iptables -A INPUT -i lo -j ACCEPT
# Denegar Ping
iptables -A INPUT -p ICMP --icmp-type 8 -j DROP
56
# Bloquear FTP desde afuera
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
# Bloquear SSH desde afuera
iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW -j DROP
# Bloquear X11 desde afuera
iptables -A INPUT -i eth0 -p TCP --dport 6000 -m state --state NEW -j DROP
# Bloquear rpcbind desde afuera
iptables -A INPUT -i eth0 -p TCP --dport 111 -m state --state NEW -j DROP
# Permitir salida de la LAN
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
# -------------------------------------------------------------------------------------# Denegar el acceso a sitios web
# denegar acseso a jugarjuegos.com
iptables -A FORWARD -d 207.44.228.41 -j REJECT
# denegar acseso a juegos666.com
iptables -A FORWARD -d 207.44.134.136 -j REJECT
# denegar acseso a minijuegos.com
iptables -A FORWARD -d 80.69.64.154 -j REJECT
iptables -A FORWARD -d 67.19.243.131 -j REJECT
iptables -A FORWARD -d 80.69.64.200 -j REJECT
# denegar acseso a juegosjuegos.com
iptables -A FORWARD -d 66.98.172.17 -j REJECT
# denegar acseso a elchat.com
iptables -A FORWARD -d 200.76.190.254 -j REJECT
# denegar acseso a latinchat.com
iptables -A FORWARD -d 62.37.236.14 -j REJECT
iptables -A FORWARD -d 200.68.58.83 -j REJECT
iptables -A FORWARD -d 200.68.58.76 -j REJECT
# denegar acseso a latinchat.cl
iptables -A FORWARD -d 200.74.171.188 -j REJECT
# denegar acseso a michat.com
iptables -A FORWARD -d 213.41.125.162 -j REJECT
# denegar acseso a juegos10.com
iptables -A FORWARD -d 66.98.192.66 -j REJECT
iptables -A FORWARD -d 67.19.251.114 -j REJECT
# denegar acseso a juegos.com
iptables -A FORWARD -d 161.58.17.20 -j REJECT
# denegar acseso a geojuegos.com
iptables -A FORWARD -d 62.151.20.51 -j REJECT
# denegar acseso a estasmuerto.com
iptables -A FORWARD -d 205.209.172.112 -j REJECT
# denegar acseso a tonterias.com
iptables -A FORWARD -d 69.72.131.131 -j REJECT
57
# denegar acseso a quefuerte.com
iptables -A FORWARD -d 194.143.194.246 -j REJECT
# denegar acseso a estasvivo.com
iptables -A FORWARD -d 65.75.182.200 -j REJECT
# denegar acseso a podrido.com
iptables -A FORWARD -d 207.44.238.114 -j REJECT
# denegar acseso a jocjuegos.com
iptables -A FORWARD -d 212.0.105.123 -j REJECT
iptables -A FORWARD -d 213.86.246.154 -j REJECT
# denegar acseso a rotten.com
iptables -A FORWARD -d 216.218.248.174 -j REJECT
# denegar acseso a 1001juegos.com
iptables -A FORWARD -d 64.49.219.154 -j REJECT
# denegar acseso a 101juegos.com
iptables -A FORWARD -d 212.227.34.3 -j REJECT
# denegar acseso a barbie.com
iptables -A FORWARD -d 200.68.58.71 -j REJECT
# denegar acseso a cartoonnetwork.com
iptables -A FORWARD -d 207.25.71.118 -j REJECT
iptables -A FORWARD -d 64.236.16.231 -j REJECT
# denegar acseso a l1.lopeor.com
iptables -A FORWARD -d 207.21.211.86 -j REJECT
# denegar acseso a cartoonnetwork.cl
iptables -A FORWARD -d 207.25.71.228 -j REJECT
# denegar acseso a jetrixtv.com
iptables -A FORWARD -d 199.181.132.33 -j REJECT
# denegar acseso a miniclick.com
iptables -A FORWARD -d 64.40.102.42 -j REJECT
# denegar acseso a irc.cl
iptables -A FORWARD -d 200.14.80.69 -j REJECT
# denegar acseso a etc.cl
iptables -A FORWARD -d 200.29.0.11 -j REJECT
# denegar acseso a latinchat
iptables -A FORWARD -d 200.68.58.70 -j REJECT
iptables -A FORWARD -d 200.68.58.101 -j REJECT
iptables -A FORWARD -d 213.149.241.129 -j REJECT
iptables -A FORWARD -d 200.68.58.98 -j REJECT
# denegar acseso a juegosjuegos.com
iptables -A FORWARD -d 67.19.251.90 -j REJECT
iptables -A FORWARD -d 217.11.100.83 -j REJECT
iptables -A FORWARD -d 207.21.211.56 -j REJECT
# denegar acseso a escalofrio.com
iptables -A FORWARD -d 80.69.64.112 -j REJECT
# denegar acseso a private.com
iptables -A FORWARD -d 217.116.240.20 -j REJECT
58
# denegar acceso a miniclip.comv
iptables -A FORWARD -d 66.165.172.181 -j REJECT
iptables -A FORWARD -d 212.113.31.48 -j REJECT
# denegar acceso a irc
iptables -A FORWARD -d 200.83.0.166 -j REJECT
# denegar accesoa mejorbusqueda.com
iptables -A FORWARD -d 213.173.190.47 -j REJECT
iptables -A FORWARD -d 213.173.188.160 -j REJECT
# denegar acceso a juegoramas.com
iptables -A FORWARD -d 64.233.246.142 -j REJECT
iptables -A FORWARD -d 64.235.246.150 -j REJECT
iptables -A FORWARD -d 64.235.246.158 -j REJECT
iptables -A FORWARD -d 64.235.246.141 -j REJECT
# denegar accesoa chile.com/chat
iptables -A FORWARD -d 200.29.90.58 -j REJECT
# denegar acceso a terra.cl/chat
iptables -A FORWARD -d 200.28.222.214 -j REJECT
# denegar acceso a canal13.cl/chat
iptables -A FORWARD -d 200.27.99.32 -j REJECT
# Fin del script
59
7.2.- Fichero de Configuración Servidor FTP (proftpd.conf).
# Configuracion basica de ProFTPD
# Luis Vega M.
# [email protected]
# FTP de Uso Interno
ServerName
"I. Municipalidad de Chanco."
ServerType
standalone
DefaultServer
on
# Permitir Resumir
AllowStoreRestart
on
# Puerto Standard del FTP
Port
21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask
022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances
30
# Set the user and group under which the server will run.
User
Group
nobody
nogroup
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
# Normally, we want files to be overwriteable.
AllowOverwrite
on
60
7.3.- Pantallas de módulos funcionales Sitio Web.
A.- Índice Noticioso.
Figura 15. Pantalla de la página Índice Noticioso.
B.- Solicitud de Información Turística.
Figura 16. Pantalla de la página Solicitud de Información Turística.
61
C.- Respuesta al enviar formulario de solicitud.
Figura 17. Respuesta al enviar una solicitud de información.
D.- Formulario de contacto.
Figura 18. Formulario de Contacto.
E.- Chat.
Figura 19. Pantalla de Ingreso al Chat y su funcionamiento.
62
No se mostrará el sistema de estadísticas ya que una imagen de él ya fue mostrada en la figura 13,
además no es parte de la programación el sitio porque es un servicio gratuito que ofrece
netstadbasic.net.
7.4 Códigos módulos funcionales Sitio Web.
A.- Índice Noticioso.
Es solo código HTML que no tiene mayor programación esa es la razón por la que se sugirió un
sistema automatizado de noticias.
<table width="95%" border="0" align="center" cellpadding="3" cellspacing="0" height="1319">
<tr>
<td height="10" valign="top"><table width="100%" border="0" cellspacing="0"
cellpadding="0">
<tr>
<td width="10"><strong>
<font size="1" face="Verdana"><img src="images/arrow.gif" width="7"
height="7"></font></strong></td>
<td><strong>
<font size="2" face="Verdana" color="#000000">
ÍNDICE NOTICIOSO</font></strong></td>
</tr>
</table></td>
</tr>
<tr>
<td valign="top" height="1297">
<p align="left">
<font color="#FFFFFF" face="Verdana" size="1">
....................................................................................<br>
</font><b><font face="Verdana" size="2">
<font color="#800000">
<a href="noticias/halcones_fotos.htm">FOTOS HALCONES
TOUR 2005</a></font><a href="noticias/halcones_fotos.htm">.</a></font><font
color="#800000" face="Verdana" size="2"><br>
</font></b>
<font face="Verdana" size="1" color="#000000">Chanco
(21
de febrero 2005).<br>
Imágenes de la espectacular presentación del Grupo
Halcones de la Fuerza Aérea de Chile (FACH) en la
celebración de sus 75 años.<br>
<b>Página con fotos
<a href="noticias/halcones_fotos.htm">1</a> y
<a href="noticias/halcones_fotos2.htm">2</a>.</b><br>
</font><b><font face="Verdana" size="1">
<br>
</font></b>
</td>
</tr>
</table>
63
B.- Solicitud de información turística.
•
Comprobar si hemos recibido datos de algún formulario.
La variable HTTP_POST_VARS, se encarga de verificar si hemos enviado datos a través de algún
formulario, en este caso la antepone un signo “!”, lo que quiere decir es “si es diferente a”, si es
positivo, entonces mostrará el formulario de contacto, de lo contrario “else” que esta mas abajo,
enviará lo que hay en HTTP_POST_VARS.
<?
if (!$HTTP_POST_VARS){
?>
•
Creación del formulario.
El formulario poseerá unos check box para seleccionar el o los tipo de información que el visitante
desee, luego mas abajo habrán campos de texto que el visitante tendrá que llenar para poder
saber sus datos y así enviarle la información. No se usa ningún tipo de validación.
<form action="turismo.php" method=post>
<table border="1" cellpadding="3" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="100%" id="AutoNumber4" bgcolor="#C0C0C0">
<tr>
<td width="50%"><font face="Verdana" color="#000000" size="2">
<b>
<input type="checkbox" name="general" value="Folleto información general de la comuna">Folleto
información general de la comuna</b></font></td>
</tr>
<tr>
<td width="50%"><font face="Verdana" color="#000000" size="2">
<b>
<input type="checkbox" name="urbana" value="Folleto Zona Urbana">Folleto Zona
Urbana</b></font></td>
</tr>
<tr>
<td width="50%"><font face="Verdana" color="#000000" size="2">
<b>
<input type="checkbox" name="calendario" value="Calendario de eventos">Calendario de
eventos</b></font></td>
</tr>
<tr>
<td width="50%"><font face="Verdana" color="#000000" size="2">
<b>
<input type="checkbox" name="areas" value="Folleto de áreas naturales">Folleto de áreas
naturales</b></font></td>
</tr>
<tr>
<td width="50%"><font face="Verdana" color="#000000" size="2">
<b>
<input type="checkbox" name="borde" value="Folleto borde costero">Folleto borde
costero</b></font></td>
</tr>
<tr>
<td width="50%"><font face="Verdana" color="#000000" size="2">
<b>
<input type="checkbox" name="servicios" value="Guía de comercio y servicios">Guía de comercio y
servicios</b></font></td>
</tr>
64
<tr>
<td width="50%"><font face="Verdana" color="#000000" size="2">
<b>
<input type="checkbox" name="mapa" value="Mapa Rutero">Mapa Rutero</b></font></td>
</tr>
</table>
<p align="justify"><b><font face="Verdana" size="2">Datos del solicitante:<br>
 </font></b><table border="1" cellpadding="3" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="100%" id="AutoNumber5" bgcolor="#C0C0C0">
<tr>
<td width="15%"><b><font face="Verdana" size="2">Nombre Completo</font></b></td>
<td width="85%">
<p>
<input type="text" name="nombre" size="34"></p>
</td>
</tr>
<tr>
<td width="15%"><b><font face="Verdana" size="2">Dirección</font></b></td>
<td width="85%"><input type="text" name="direccion" size="35"></td>
</tr>
<tr>
<td width="15%"><b><font face="Verdana" size="2">Ciudad</font></b></td>
<td width="85%"><input type="text" name="ciudad" size="20"></td>
</tr>
<tr>
<td width="15%"><b><font face="Verdana" size="2">Región</font></b></td>
<td width="85%"><input type="text" name="region" size="5"></td>
</tr>
<tr>
<td width="15%"><b><font face="Verdana" size="2">País</font></b></td>
<td width="85%"><input type="text" name="pais" size="25"></td>
</tr>
<tr>
<td width="15%"><b><font face="Verdana" size="2">E-Mail</font></b></td>
<td width="85%"><input type="text" name="email" size="30"></td>
</tr>
<tr>
<td width="15%" valign="top"><b><font face="Verdana" size="2">Comentarios</font></b></td>
<td width="85%">
<p>
<textarea rows="8" name="comentarios" cols="26"></textarea></p>
</td></tr>
<tr>
<td width="15%"> </td>
<td width="85%"><p>
<input type="submit" value="Enviar" name="enviar">
<input type="reset" value="Limpiar" name="limpiar"></p>
</td> </tr> </table>
</form>
Si nos fijamos bien es un formulario que se llama así mismo y que tiene como método de envío
post, el cual permite enviar los datos por la entrada estándar STDIO.
A cada elemento del formulario se le da un nombre que luego se usará como variable en el código
PHP. Al final del formulario hay declarado un botón que tiene como acción enviar (submit) todos los
datos del formulario y un botón que tiene como acción reset, el cual borra todos los datos escritos
en los campos de textos.
65
•
Código PHP que permitirá enviar le formulario por mail.
Declaramos $hostname para saber el nombre del host del visitante.
Declaramos $hostaddressip para saber la dirección IP del visitante.
Y por ultimo creamos el cuerpo del mensaje con la variable $cuerpo. Observar el uso de “.=”, para
indicar que el contenido de la línea va junta con la anterior.
Usamos isset para evaluar si la variable esta declarada.
Usamos la función mail() que provee PHP para el envío del formulario al los correos indicados.
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$hostaddressip = $_SERVER['REMOTE_ADDR'];
$cuerpo = "Solicitud de informacion turisica.\n";
$cuerpo .= "Desde: " . $hostname . " con IP: " . $hostaddressip . "\n \n";
if (isset($_POST["general"]))
$cuerpo .= $HTTP_POST_VARS["general"] . "\n";
if (isset($_POST["urbana"]))
$cuerpo .= $HTTP_POST_VARS["urbana"] . "\n";
if (isset($_POST["calendario"]))
$cuerpo .= $HTTP_POST_VARS["calendario"] . "\n";
if (isset($_POST["areas"]))
$cuerpo .= $HTTP_POST_VARS["areas"] . "\n";
if (isset($_POST["borde"]))
$cuerpo .= $HTTP_POST_VARS["borde"] . "\n";
if (isset($_POST["servicios"]))
$cuerpo .= $HTTP_POST_VARS["servicios"] . "\n";
if (isset($_POST["mapa"]))
$cuerpo .= $HTTP_POST_VARS["mapa"] . "\n";
$cuerpo .= "\n Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Direccion: " . $HTTP_POST_VARS["direccion"] . "\n";
$cuerpo .= "Ciudad: " . $HTTP_POST_VARS["ciudad"] . "\n";
$cuerpo .= "Region: " . $HTTP_POST_VARS["region"] . "\n";
$cuerpo .= "Pais: " . $HTTP_POST_VARS["pais"] . "\n";
$cuerpo .= "E-Mail: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Comentarios: \n \n " . $HTTP_POST_VARS["comentarios"] . "\n";
//mando el correo...
mail("[email protected], [email protected]","Solicitud de Informacion Turistica",$cuerpo);
//doy las gracias por el envío;
echo "<font face=\"Verdana\" size=\"2\">";
echo "<font color=\"800000\" face=\"Verdana\" size=\"2\"><b>SOLICITUD DE INFORMACION
TURISTICA</b></font><br><br>";
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
echo "<br><a href=\"turismo.php\">Enviar otra solicitud</a>";
echo "</font>";
}
?>
66
C.- Formulario de contacto.
Tiene un parecido con el formulario anterior, solo que acá no hacemos uso de check box, si no que
una lista desplegable.
•
Primero evaluamos si hay datos por enviar en el formulario.
<?
if (!$HTTP_POST_VARS){
?>
•
Luego creamos el formulario
<form action="recomendar.php" method=post>
<tr>
<td width="16%" align="justify"><font face="Verdana" size="2">Nombre: </font></td>
<td width="84%" align="justify"><input type=text name="nombre" size=30></td>
</tr>
<tr>
</tr>
<tr>
<td width="16%" align="justify"><font face="Verdana" size="2">Tu E-Mail: </font></td>
<td width="84%" align="justify"><input type=text name=email size=20></td>
<td width="16%" align="justify"><font face="Verdana" size="2">Dirigido a: </font></td>
<td width="84%" align="justify">
<select size="1" name="dirigido">
<option selected value="Alcaldesa">Alcaldesa</option>
<option value="Concejales">Concejales</option>
<option value="Secretaria Municipal">Secretaria Municipal</option>
<option value="Finanzas">Finanzas</option>
<option value="Informatica">Informática</option>
<option value="Control">Control</option>
<option value="Relaciones Publicas">Relaciones Públicas</option>
<option value="Salud">Salud</option>
<option value="Educacion">Educación</option>
<option value="Turismo">Turismo</option>
<option value="Transito y Patentes">Tránsito y Patentes</option>
<option value="Social">Social</option>
<option value="Obras">Obras</option>
<option value="Prodesal">Prodesal</option>
<option value="Omdel">Omdel</option>
<option value="Juzgado de Policia Local">Juzgado de Policia Local</option>
<option value="*Otros">*Otros</option>
</select>
</td>
</tr>
<tr>
<td width="16%" align="justify"><font face="Verdana" size="2">Comentarios: </font></td>
<td width="84%" align="justify"><textarea name=coment cols=30 rows=10></textarea></td>
</tr>
<tr>
<td width="16%" align="justify"></td>
<td width="84%" align="justify"><input
value="Limpiar"></td>
</tr>
type=submit
</form>
67
value="Enviar">
<input
type=reset
•
Enviamos el formulario
Se especifica el o los correos de destino, además se envían el nombre del host y la IP del visitante.
<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$hostaddressip = $_SERVER['REMOTE_ADDR'];
$cuerpo = "Mensaje desde el Sitio Web de Chanco.\n";
$cuerpo .= "Desde: " . $hostname . " con IP: " . $hostaddressip . "\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
$cuerpo .= "Dirigido a: " . $HTTP_POST_VARS["dirigido"] . "\n";
$cuerpo .= "Comentarios: \n \n " . $HTTP_POST_VARS["coment"] . "\n";
//mando el correo...
mail("[email protected], [email protected]","Contacto desde el Sitio Web de Chanco",$cuerpo);
//doy las gracias por el envío;
echo "<font face=\"Verdana\" size=\"2\">";
echo "<font color=\"004080\" face=\"Verdana\" size=\"2\"><b>CONTÁCTESE CON LA ILUSTRE
MUNICIPALIDAD DE CHANCO</b></font><br><br>";
echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";
echo "<br><a href=\"recomendar.php\">Enviar otro mensaje</a>";
echo "</font>";
}
?>
D.- Chat.
El Chat está programado completamente en ASP y no fue programado por el Webmaster, es por
esto que no se darán mayores detalles. Se compone de un frame con dos divisiones, una superior
y una inferior. La página principal que muestra los frames es la siguiente.
<html>
<head>
<title>Chanco Chat</title>
</head>
<frameset rows="280,180" noresize>
<frame SRC="visualizacion.asp">
<frame SRC="incluir.asp" target="_self">
<noframes>
<body>
</body>
</noframes>
</frameset>
</html>
E.- Visualización del Chat
Muestra los datos que son enviados por el visitante en la división inferior de la página.
<% PaginaActual="http://"&_
Request.ServerVariables("SERVER_NAME")&_
Request.ServerVariables("SCRIPT_NAME") %>
<html><head>
<META HTTP-EQUIV="REFRESH" CONTENT="4;visualizacion.asp">
<title>Chanco Chat</title>
68
</head>
<body bgcolor="E5E5E5">
<FONT FACE="verdana" COLOR="Blue" size="2">
<center><img border="0" src="bann_chat.jpg"><br></center>
<% IF NOT isArray( Application("Opiniones")) THEN
Application.Lock
Dim Auxiliar()
Redim Auxiliar(9)
Application("Opiniones")=Auxiliar
Application.UnLock
END IF
Temporal=Application("Opiniones")
FOR Opinion=8 to 0 step -1%>
<%= Temporal(Opinion) %> <BR>
<% NEXT %>
</body></html>
F.- Archivo global .ASA, es procesado por cada sesión de navegador que inicia la aplicación
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Dim Auxiliar()
Redim Auxiliar(9)
Application("Opiniones")=Auxiliar
End Sub
</SCRIPT>
G.- Envío de mensajes.
<%
IF Request.Cookies("Apodo")="" and request.form("opinion")<>"" THEN
if request.form("apodo")<>"" then
Response.Cookies("Apodo")=Request.Form("Apodo")
else
Response.Cookies("Apodo")="Anonimo"
end if
Application.Lock
Temporal=Application("Opiniones")
FOR i=7 TO 0 STEP -1
Temporal(i+1)=Temporal(i)
NEXT
if request.form("apodo")<>"" then
Temporal(0)="<FONT COLOR=""#000000""><b>[</b> " & Request.Form("Apodo") & "
<b>]</b> Entra en el chat</FONT>"
else
Temporal(0)="<FONT COLOR=""#000000""><b>[</b> Anonimo <b>]</b> Entra en el
chat</FONT>"
end if
Application("Opiniones")=Temporal
Application.Unlock
END IF
IF Request.Form("Opinion")<>"" THEN
Apodo=Request.Cookies("Apodo")
Application.Lock
Temporal=Application("Opiniones")
FOR i=7 TO 0 STEP -1
69
Temporal(i+1)=Temporal(i)
NEXT
Temporal(0)=Apodo& ": " &Request.Form("Opinion")
Application("Opiniones")=Temporal
Application.Unlock
END IF%>
<html>
<head>
<title>Incluir opinion</title>
<base target="_self">
</head>
<font color="004080" face="Verdana" size="2">
<form METHOD="POST" ACTION="incluir.asp">
<input type="hidden" name="go" value="si"><% IF Request.Cookies("Apodo")="" THEN %>
<p align="left">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1">
<tr>
<td><b>  Nick :</b></td>
<td><input TYPE="TEXT" SIZE="28" NAME="Apodo"> </td>
</tr>
<tr>
<td><% END IF %> <b>  Mensaje: </b> </td>
<td><input TYPE="TEXT" SIZE="33" NAME="Opinion"></td>
</tr>
<tr>
<td> </td>
<td><input TYPE="SUBMIT" VALUE="Enviar">
<input type="reset" value="Limpiar" name="Limpiar"></td>
</tr>
</table>
</html>
70
7.5.- ACTIVIDADES ALUMNO.
Participaciones:
•
Primer Encuentro Estudiantil de Linux, Realizado entre el 21 y 22 Marzo de 2002,
Universidad Católica del Maule, Talca.
•
Segundo Encuentro Estudiantil de Linux, Realizado entre el 18 y 22 Agosto de 2003,
Universidad Católica del Maule, Talca.
•
Jornadas Chilenas de Computación, Realizadas entre el 3 y 8 de Noviembre de 2003,
Universidad del Bio-Bio, Chillán.
•
Expositor, Programación en PLC, Simulación de Semáforo, Primera Feria de Computación
e Informática, 21 al 23 de Abril de 2004, Universidad Católica del Maule.
•
Encuentro Nacional de Linux, Realizado los días 21, 22 y 23 de Octubre de 2004,
Universidad Técnica Federico Santa María, Valparaíso.
Artículos Realizados:
•
Introducción a PostgreSQL, Paulo Nuñez V., Luis Vega M., Julio Lobo V., Documento
desarrollado para la asignatura de Administración de Sistemas Operativos, V Semestre, 17
de Junio de 2004, Universidad Católica del Maule.
Web: http://es.geocities.com/fodcl/doc_post/doc_post.html.
•
Proyecto Con PLC. Línea de Secado de Productos a través de una Correa Transportadora.
Paulo Nuñez V., Julio Lobo V., Cristian Mena C., Genaro Pobrete C., Luis Vega M.
Documento desarrollado para la asignatura de Automatización de Procesos Industriales, V
Semestre. 2 de Julio de 2004. Universidad Católica del Maule.
Web: http://es.geocities.com/fodcl/doc_aut/doc_aut_intro.html.
•
Introducción a PHP y MySQL. Luis Vega M. Documento desarrollado para la asignatura de
Programación Avanzada. V Semestre, 6 de Julio de 2004. Universidad Católica del Maule.
Web: http://es.geocities.com/fodcl/doc_mysql/doc_mysql_intro.html.
71
7.6.- DOCUMENTOS PRÁCTICA.
7.6.1 Contrato de Práctica Profesional.
Figura 20. Contrato de Práctica Profesional
72
7.6.2 Inscripción de Práctica Profesional.
Figura 21. Inscripción de Práctica Profesional
73
Descargar