proyecto de grado ingeniero en sistemas …repositorio.ug.edu.ec/bitstream/redug/6856/1/tesis...

298
UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales “Sistema de Análisis de logs en Servidores Unix bajo Plataforma Microsoft” PROYECTO DE GRADO Previo a la Obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES Autores: Luis Adrián Chóez Acosta Bolívar Alfredo Herrera Campozano Roberto Carlos León Narváez Francisco Gerardo Palacios Ortiz GUAYAQUIL ECUADOR Año 2005

Upload: trannhu

Post on 26-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en Sistemas Computacionales

“Sistema de Análisis de logs en Servidores Unix bajo

Plataforma Microsoft”

PROYECTO DE GRADO

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

Luis Adrián Chóez Acosta

Bolívar Alfredo Herrera Campozano

Roberto Carlos León Narváez

Francisco Gerardo Palacios Ortiz

GUAYAQUIL – ECUADOR

Año 2005

AGRADECIMIENTO

En primer lugar nuestro agradecimiento al supremo

creador que gracias a su bondad nos lleno de fuerza y

esperanza para continuar en esta dura tarea.

Un gracias a todos aquellos docentes, autoridades y

personas en particular que hicieron posible que hoy

estemos en esta instancia de nuestras vidas, aquellos

maestros que con sus conocimientos y consejos supieron

llenarnos de sabiduría, inteligencia y dones de gente

durante todo el proceso de nuestra vida universitaria

dentro de nuestra querida institución.

A nuestros Padres, Familiares y Amigos que gracias a la

confianza depositada en nosotros nos supieron guiar y

brindarnos su apoyo en el momento en que cada uno

más lo necesitó, sabiendo el duro y difícil camino de esta

etapa de nuestras vidas.

DEDICATORIA

Dedico este trabajo de tesis en primer lugar al

supremo creador por haber puesto en mi, fe y

esperanza para seguir adelante, también lo

comparto con todas aquellas personas, amigos y

familiares que de una u otra manera hicieron

posible que hoy llegue hasta estas instancias de

mi vida, gracias mil por que de cada uno de

ustedes aprendí durante toda esta etapa

universitaria, pero de manera muy especial y con

todo el sentimiento que me embargo haber

realizado este trabajo lo dedico a dos seres

humanos excepcionales y que fueron parte

fundamental para que hoy este presentando este

proyecto, como lo son: Augusto Palacios Zapatier

y Silvia Ortiz Avilez de Palacios mis adorados

Padres…

Francisco Gerardo Palacios Ortiz

DEDICATORIA

En primer lugar dedico esta tesis a nuestro creador

por haberme dado las herramientas necesarias

para culminar una de las etapas más importantes

de mi vida.

También se la dedico a toda mi familia y de forma

muy especial a mis padres que con mucho amor,

esfuerzo y sacrificio me supieron guiar y apoyar

incondicionalmente en todo momento.

Roberto León Narváez.

DEDICATORIA

Quiero dedicar esta tesis a mi Dios que me dio la

vida y por darme la gracia de tener a mis padres,

que me supieron apoyar en todo momento, todo lo

que soy es gracias a ellos siempre les estaré muy

agradecido.

A mis compañeros que con su amistad han

marcado experiencias, que hoy me permiten la

obtención de esta meta y a personas como mi

novia Carla que de una u otra forma me han

ayudado a culminar esta etapa de mi vida.

Bolívar Herrera

DEDICATORIA

Dedico este trabajo en primer lugar a mi Padre

Celestial por proveerme, con su infinita

generosidad, de los medios necesarios para

culminar esta etapa de mi vida; a mi madre, ya que

su amor y ejemplo me ha acompañado en cada

momento de mi existencia; a mi padre, porque

siempre me apoyó incondicionalmente en todas

mis empresas; a mis hermanos, que siempre me

animaron para que alcance mis metas y a mis

amigos con los que compartí todos estos

hermosos años de mi carrera universitaria.

Luis Adrián Chóez Acosta

.

TRIBUNAL DE SUSTENTACIÓN

_____________________

Ing. José Luis Peralta Presidente del Tribunal

_______________________ ____________________ Ing. Francisco Contreras Ing. Jorge Medina Vocal Principal Vocal Principal

____________________________ Ab. Juan Chávez Atocha

Secretario

DECLARACIÓN EXPRESA

“La autoría de la tesis de grado corresponde exclusivamente a los suscritos,

perteneciendo a la Universidad de Guayaquil los derechos que generen la

aplicación de la misma”

(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas

computacionales, Art. 26)

___________________ ___________________

Francisco Palacios Ortiz Roberto León Narváez

____________________ ___________________

Bolívar Herrera Campozano Luis Chóez Acosta

RESUMEN

El proyecto de Análisis de logs en Servidores Unix (Linux) surgió como una

idea por tratar de mejorar el rendimiento de los usuarios que laboran en una

organización, ya sea esta privada o gubernamental, la idea principal es

monitorear y administrar los recursos de Internet con que cuenta la

organización para lo cual hemos utilizado varias herramientas como son

Visual Basic 6.0, Sistema operativo Linux en su versión Suse 9, Sistemas

Operativos en ambiente Microsoft para las pruebas necesarias.

Este proyecto esta orientado aquellas personas que cumplen la función de

administradores de red dentro de una organización o empresa.

ÍNDICE GENERAL

CAPITULO 1 1

1 INTRODUCCIÓN 1

1.1 Antecedentes 1

1.2 Problemática 2

1.3 Solución de la Problemática 3

1.4 Definición del Proyecto 3

1.5 Visión y Misión 5

1.5.1 Visión 5

1.5.2 Misión 5

1.6 Objetivos del Proyecto 5

1.6.1 Objetivo General 5

1.6.2 Objetivos Específicos 5

1.7 Alcance del proyecto 6

1.7.1 Captura de Archivos Logs 6

1.7.2 Almacenamiento en la Base de Datos 7

1.7.3 Interface del Software 7

1.7.4 Reportes 8

1.7.5 Gráficos 8

1.7.6 Histórico 8

1.8 Beneficios del Proyecto 9

1.9 FODA 10

1.10 Cronograma 13

1.11 Recursos Necesarios para el Proyecto 14

1.11.1 Hardware 14

1.11.2 Software 15

1.11.3 Humano 15

1.12 Metodología 15

1.12.1 Metodología del Proyecto 15

CAPITULO 2 19

2 ANÁLISIS 19

2.1 Levantamiento de Información 19

2.2 Análisis de Requerimientos 26

2.3 Diagrama de Entidad Relación (DER) 27

2.4 Diagrama de Flujo de Datos (DFD) 33

2.5 Diagramación de Procesos 36

2.5.1 Proceso de Captura y Tabulación de logs 38

y Almacenamiento en la Base de Datos

2.5.1.1 Resumen 38

2.5.1.2 Definiciones 39

2.5.1.3 Descripción 39

2.5.1.4 Objetivos 40

2.5.1.5 Alcance 40

2.5.1.6 Roles y Responsabilidades 40

2.5.1.7 Procedimientos 43

2.5.2 Proceso de Validación de Login de Usuario 49

y Contraseña para acceder al sistema

2.5.2.1 Resumen 49

2.5.2.2 Definiciones 50

2.5.2.3 Descripción 50

2.5.2.4 Objetivos 50

2.5.2.5 Alcance 51

2.5.2.6 Procedimientos 51

2.5.3 Proceso Menú Principal 54

2.5.3.1 Resumen 54

2.5.3.2 Definiciones 54

2.5.3.3 Descripción 55

2.5.3.4 Objetivos 56

2.5.3.5 Alcance 57

2.5.3.6 Procedimientos 57

2.5.4 Proceso del Servicio Squid 60

2.5.4.1 Resumen 60

2.5.4.2 Definiciones 60

2.5.4.3 Descripción 60

2.5.4.4 Objetivos 61

2.5.4.5 Alcance 62

2.5.4.6 Procedimientos 62

2.5.5 Proceso del Servicio Apache 63

2.5.5.1 Resumen 63

2.5.5.2 Definiciones 63

2.5.5.3 Descripción 64

2.5.5.4 Objetivos 64

2.5.5.5 Alcance 65

2.5.5.6 Procedimientos 65

2.5.6 Proceso del Servicio Samba 66

2.5.6.1 Resumen 66

2.5.6.2 Definiciones 67

2.5.6.3 Descripción 67

2.5.6.4 Objetivos 68

2.5.6.5 Alcance 69

2.5.6.6 Procedimientos 69

CAPITULO 3 71

3 Diseño 71

3.1 Diseño de Datos 71

3.2 Estructura de la Base de Datos 73

3.3 Diseño Arquitectónico 101

3.4 Diseño de Interfaz 102

3.4.1 Introducción 102

3.4.1.1 Lo que tú ves es lo que puedes conseguir (WYSIWYG) 102

3.4.1.2 El Proceso del diseño Centrado en las Tareas de los Usuarios 104

3.4.2 Principios para el diseño 108

3.4.3 Consistencia 109

3.4.4 Retroalimentación 109

3.4.5 Minimizar la posibilidad de error 110

3.4.6 Diseño de la Interfaz del Sistema 111

3.5 Diseño a Nivel de Componentes 116

CAPITULO 4 118

4 Desarrollo y Prueba del Sistema 118

4.1 Desarrollo del Sistema 118

4.1.1 Creación de la Base de Datos 118

4.1.2 Creación de Componentes 120

4.1.3 Migración de Datos 122

4.1.4 Seguridades 123

4.1.4.1 Sistema Operativo 123

4.1.4.2 Del Sistema 123

4.2 Prueba del Sistema 123

4.2.1 Tipos de Prueba del Sistema 124

4.2.2 Calidad del Sistema 125

CAPITULO 5 126

5 Implementación del Sistema 126

5.1 Introducción 126

5.2 Elementos Físicos 127

5.3 Elementos de Software 128

5.4 Elementos Humanos 128

5.5 Infraestructura 130

5.6 Capacitación de los usuarios 130

CAPITULO 6 131

6 Recomendaciones y conclusiones de la Tesis 131

6.1 Recomendaciones 131

6.1.1 Hardware 131

6.1.2 Software 132

6.1.3 Cableado 133

6.1.4 Seguridades 133

6.2 Conclusiones 134

ÍNDICE DE FIGURAS

Fig.1.1 Foda 10

Fig.1.2 Modelo Lineal Secuencial 16

Fig.2.1 Objetos de Datos 28

Fig.2.2 Atributos 29

Fig.2.3 DER 33

Fig.2.4 DFD Nivel Contextual (Nivel 0) 34

Fig.2.5 DFD Nivel 1 35

Fig. 3.1 Tabla AccesoUsuario Campo codusuario. 73

Fig. 3.2 Tabla AccesoUsuario Campo Nombre. 74

Fig. 3.3 Tabla AccesoUsuario Campo Apellido. 75

Fig. 3.4 Tabla AccesoUsuario Campo Nick. 76

Fig. 3.5 Tabla AccesoUsuario Campo password. 77

Fig. 3.6 Tabla AccesoUsuario Campo cargo. 78

Fig. 3.7 Tabla AccesoUsuario Campo estado. 79

Fig. 3.8 Tabla squid Campo IP. 80

Fig. 3.9 Tabla squid Campo método. 81

Fig. 3.10 Tabla squid Campo dirección. 82

Fig. 3.11 Tabla squid Campo Fecha. 83

Fig. 3.12 Tabla Apache Campo IP. 84

Fig. 3.13 Tabla Apache Campo fecha. 85

Fig. 3.14 Tabla Apache Campo hora. 86

Fig. 3.15 Tabla Apache Campo método. 87

Fig. 3.16 Tabla Apache Campo archivo. 88

Fig. 3.17 Tabla Samba Campo fecha. 89

Fig. 3.18 Tabla Samba Campo hora. 90

Fig. 3.19 Tabla Samba Campo información. 91

Fig. 3.20 Tabla Usuario Campo IP. 92

Fig. 3.21 Tabla Usuario Campo usuario. 93

Fig. 3.22 Tabla Usuario Campo codDep. 94

Fig. 3.23 Tabla Usuario Campo estado. 95

Fig. 3.24 Tabla Departamentos Campo codDep. 96

Fig. 3.25 Tabla Departamentos Campo nombre. 97

Fig. 3.26 Tabla Paginas Campo codpagina. 98

Fig. 3.27 Tabla Paginas Campo dirección. 99

Fig. 3.28 Tabla Paginas Campo estado. 100

Fig. 3.29 Diseño Arquitectónico 101

Fig. 3.30 Pantalla Inicial 111

Fig. 3.31 Pantalla de captura Lista 112

Fig. 3.32 Pantalla de Login de Usuario 113

Fig. 3.33 Pantalla de Login Incorrecto 113

Fig. 3.34 Pantalla de Menú Principal 114

Fig. 3.35 Interfaz de Servicio Squid 115

Fig. 3.36 Diagrama de Componentes 116

1

CAPÍTULO 1

1 INTRODUCCIÓN

1.1 Antecedentes

Las Redes de Computadoras y la Internet significaron un gran avance en el

mundo de la información. La posibilidad de enviar y recibir documentos, de

compartir dispositivos, tanto al interior de una empresa como al exterior de la

misma.

Si se toma en cuenta que la información es el activo más importante que

posee una institución, podemos inferir la gran responsabilidad que posee el

Administrador de la Red y el Webmaster de cualquier empresa.

2

Pero para poder realizar con eficiencia todas las actividades que conllevan

dichos cargos, se necesita el uso de herramientas informáticas desarrolladas

especialmente para optimizar el uso de las Redes dentro de la organización.

Por estos motivos nuestro proyecto lo hemos dirigido hacia la persona que

administra la Red de una empresa. Esta herramienta le facilitará al

administrador de la Red llevar el control del uso del Internet y de los

dispositivos compartidos de la Red tales como: impresoras, archivos

directorios, carpetas, etc.

1.2 Problemática

Uno de los mayores problemas a los que se enfrentan los gerentes es

determinar si los recursos de la empresa están siendo bien utilizados.

El Internet es un recurso muy sensible a este problema, ya que si bien es

indispensable para que una empresa esté posicionada en el siglo XXI;

también es muy cierto que es una gran fuente de distracción, que puede

mermar la productividad del personal.

Quienes trabajan en empresas y que tienen acceso a Internet suelen

conectarse a este servicio por largo tiempo o a páginas indebidas. Muchas

veces también hacen mal uso de los dispositivos compartidos de la red.

3

Es importante que el administrador de la red cuente con algún tipo de

herramienta que le ayude a llevar un mejor control del uso de Internet y de

los dispositivos compartidos en la red.

1.3 Solución de la Problemática

Para solucionar este problema hemos decidido desarrollar un sistema que

proporcione las ventajas y facilidades que el Administrador de la Red

necesita para optimizar el uso del Internet en la empresa.

Para desarrollar este proyecto se evaluaron las diferentes tecnologías

existentes en el mercado y se decidió desarrollar un software que corra en

plataforma Windows y que se conecte al servidor Linux que maneja los

servicios squid, apache y samba para capturar los archivos logs que estos

servicios generan.

Para ello hemos utilizado como herramienta de desarrollo el lenguaje de

programación Visual Basic 6.0 y como modelador de la base de datos SQL.

1.4 Definición del Proyecto

Básicamente el proyecto consiste en una herramienta que le permite al

administrador de la red de una empresa ejercer un mayor control en el

manejo de los dispositivos compartidos y el uso del servicio de Internet, por

medio del análisis de archivos logs generados por los servicios squid,

4

apache, samba que se encuentran activados en el servidor Linux de la

empresa.

Los archivos logs son extraídos hacia la máquina donde corre la aplicación,

para luego ser analizados.

A partir de los archivos generados por el servicio squid se podrá determinar:

Qué usuarios se conectan al Internet

A qué páginas se conectan

El tiempo que permanecen conectados al mismo.

Con los archivos del servicio apache se podrá a determinar:

los accesos externos que tuvo la página web de la empresa

qué tan visitada es esa página.

Los servicios generados por el servicio samba servirán para:

determinar los dispositivos compartidos de la red que están siendo

utilizados por los usuarios.

La herramienta emitirá algunos reportes, los cuales serán especificados más

adelante en los alcances del proyecto.

Estos reportes nos permitirán tomar decisiones preventivas o correctivas con

respecto al uso de los servicios antes mencionados.

5

1.5 Visión Y Misión

1.5.1 Visión

Desarrollar un software que permita tomar las mejores decisiones para

aportar a la empresa con la optimización de costos, seguridad en la red

y hacer más productivo el trabajo de los usuarios.

1.5.2 Misión

Implementar una herramienta que ayude al Administrador de la Red de

cualquier empresa realizar un control eficiente y eficaz del manejo del

servicio de Internet y los recursos compartidos de la red.

1.6 Objetivos del Proyecto

1.6.1 Objetivo General

Optimizar mediante un eficiente control el uso que los usuarios de una

empresa le den al servicio de Internet y a los recursos compartidos de la

red.

1.6.2 Objetivos Específicos

Capturar los archivos generados de los servicios Squid, Apache y

Samba activados en un servidor Linux y llevarlos a la PC donde se

encuentra instalada la herramienta.

6

Analizar los archivos capturados.

Almacenar la información necesaria en una base de datos definida

más adelante en los alcances.

Permitir al administrador interactuar con la información almacenada

en la base de datos por medio de una interface amigable.

Emitir reportes de acuerdo a criterios que serán planteados más

adelante en los alcances.

Generar gráficos, los cuales facilitarán el análisis de la información

y la toma de decisiones correctivas y preventivas.

1.7 Alcances del Proyecto

1.7.1 Captura de Archivos Logs

Desde la PC en que se va a instalar la herramienta se capturarán los

archivos logs de los Servicios Squid, Apache y Samba que son

necesarios para el análisis.

Los registros que va a contener el archivo log tendrán información de un

solo día. En otras palabras la aplicación se conectará al servidor vía ftp,

capturará el archivo que se necesita, respaldará este archivo y luego lo

encerará.

7

De esta forma los registros que se indexan en el archivo en mención

van a ser los del nuevo día. La información que se está capturando

siempre va a ser la del día anterior, ya que este proceso se ejecutará

automáticamente a primera hora del día. Luego que el Administrador

encienda los servidores y su PC, automáticamente se corre la aplicación

y vía ftp. se conecta al servidor, captura el archivo log que debe tener la

información del día anterior, copia este archivo y luego lo respalda en el

mismo servidor pero en otro directorio, luego este archivo log se encera

para que este archivo sólo vaya a contener la información que se va a

generar ese día.

1.7.2 Almacenamiento en la base de datos

Cuando el archivo log ya se encuentre en la PC donde está instalada la

herramienta, en un directorio específico, automáticamente después del

proceso de captura, de este archivo se toma la información necesaria y

se la almacena en la base de datos.

1.7.3 Interface del Software

Se va a desarrollar una interface amigable que va a interactuar con la

información que tenemos almacenada en la base de datos.

8

La interface me permitirá escoger cualquiera de los tres servicios para

analizar que son: Squid, Apache y Samba.

Al seleccionar cualquiera de ellos me presentará la información que

tengo almacenada en la base de datos. Además me permitirá

seleccionar criterios de búsqueda como la fecha y usuarios. Es decir se

podrá presentar de forma tabular la información que se desea en base a

una fecha o a un usuario seleccionado.

1.7.4 Reportes

A partir de la información tabulada que la interface presenta se podrá

imprimir el reporte de lo que se esté visualizando.

1.7.5 Gráficos

La aplicación también podrá mostrar gráficas de barras de acuerdo a la

información tabulada que presentó la interface.

1.7.6 Histórico

La aplicación nos permitirá revisar y analizar reportes de fechas

anteriores

9

1.8 Beneficios del Proyecto

Entre los beneficios del proyecto tenemos:

Con los reportes y gráficos generados se podrá analizar quién se

conecta al Internet y cuánto tiempo pasan conectados al mismo.

Se podrá obtener qué porcentaje de las horas laborables pasan

conectados los empleados de una empresa al Internet, esto nos ayuda

para calcular la productividad del usuario.

Determinar si los usuarios se conectan a páginas indebidas.

Establecer si los usuarios se conectan en horas fuera del horario

normal de trabajo.

Determinar si el usuario necesita realmente el servicio de Internet.

Cuantificar los accesos que tiene la página Web de la empresa.

Determinar los recursos compartidos que utilizan los usuarios.

10

1.9 Foda

Introducción

El análisis FODA es una herramienta que permite conformar un cuadro de la

situación actual de la empresa u organización, permitiendo de esta manera

obtener un diagnóstico preciso que permita en función de ello tomar

decisiones acordes con los objetivos y políticas formulados.

El término FODA es una sigla conformada por las primeras letras de las

palabras Fortalezas, Oportunidades, Debilidades y Amenazas (en inglés

SWOT: Strenghts, Weaknesses, Oportunities, Threats). De entre estas cuatro

variables, tanto fortalezas como debilidades son internas de la organización,

Fig. 1.1 Foda

11

por lo que es posible actuar directamente sobre ellas. En cambio las

oportunidades y las amenazas son externas, por lo que en general resulta

muy difícil poder modificarlas.

Fortalezas: son las capacidades especiales con que cuenta la empresa, y por

los que cuenta con una posición privilegiada frente a la competencia.

Recursos que se controlan, capacidades y habilidades que se poseen,

actividades que se desarrollan positivamente, etc.

Oportunidades: son aquellos factores que resultan positivos, favorables,

explotables, que se deben descubrir en el entorno en el que actúa la

empresa, y que permiten obtener ventajas competitivas.

Debilidades: son aquellos factores que provocan una posición desfavorable

frente a la competencia. Recursos de los que se carece, habilidades que no

se poseen, actividades que no se desarrollan positivamente, etc.

Amenazas: son aquellas situaciones que provienen del entorno y que pueden

llegar a atentar incluso contra la permanencia de la organización.

12

Diagrama de Fortalezas, Oportunidades, Amenazas y Debilidades.

Positivas Negativas

Exterior Oportunidades Bajo Costo. Capacitación gratuita. Mantenimiento gratuito por un lapso de un año.

Amenazas Análisis de tráfico de los paquetes.

Gráficos interactivos.

Interior Fortalezas Analiza archivos ya generados. Esta soportado por Suse y por Linux.

Debilidades Variedad de Plataformas.

13

1.10 Cronograma

CROGRAMA GENERAL NOVIEMBRE DICIEMBRE ENERO FEBRERO MARZO ABRIL MAYO JUNIO

Del 1 de ene. al 6 dic.

ETAPA DE INVESTIGACIÓN

Del 12 de dic. al 31 de ene.

ETAPA DE ANALISIS DE REQUERIMIENTOS. Del 1 de feb. al 28 de feb

ETAPA DE DISEÑO Del 1 de mar. Al 30 de abril.

ETAPA DE IMPLEMENTACIÓN Y DESARROLLO. Del 1 de mayo al 21 de mayo

PRUEBAS DEL SISTEMA

Del 22 de mayo al 31 de mayo

PRESENTACIÓN FINAL DEL PROYECTO

TRIBUNAL REVISA Y ENTREGA EL INFORME. Del 1 de junio al 8 de junio

FISCAL REVISA DOCUMENTACION

PLAZO PARA CORECCIONES

Del 20 de junio al 27 de junio

FISCAL REVISA DOCUMENTACION

SUSTENTACIONES

13

14

1.11 Recursos Necesarios para el Proyecto

1.11.1 Hardware

1 PC Clon con las siguientes características:

Procesador 1.8 Ghz

Memoria 256 Mb RAM

Disco Duro 40 Gb

Mouse

Teclado

Monitor

1 PC Clon con las siguientes características:

Procesador 2.2 Ghz

Memoria 256 Mb RAM

Disco Duro 40 Gb

Mouse

Teclado

Monitor

Un cable cruzado UTP.

Impresora Epson LX300+

15

1.11.2 Software

Plataforma Windows “Sistema Operativo Windows XP s2”

Plataforma Suse Linux de Novell, “Sistema Operativo Suse Linux vs.9”

Microsoft Access

SQL Server

Protocolo FTP

Visual Studio 6.0 (Visual Basic)

1.11.3 Humano

El equipo de desarrollo que está formado por los cuatro integrantes.

Personal docente que nos ha ayudado con asesoramiento en la parte

de sistemas Linux.

1.12 Metodología

1.12.1 Metodología del Problema

Para nuestro proyecto, hemos tomado como guía de desarrollo el

modelo lineal secuencial o también conocido como ciclo de vida básico

o modelo en cascada. Este a su vez consta de cuatro etapas que son:

análisis, diseño, desarrollo y pruebas. El mismo que hemos modificado

16

Ingeniería

de Sistemas / Información.

de forma que se adapte de mejor manera a nuestras expectativas,

quedando así finalmente:

El modelo lineal Secuencial

Investigación Y Análisis

En esta etapa procedimos a realizar un exhaustivo análisis para

determinar datos importantes como son la factibilidad, se investigó la

tecnología a emplear y analizamos los criterios de administradores de

red para determinar de mejor manera el enfoque que se le daría a

nuestro software.

Análisis Diseño Código Prueba

Fig. 1.2 Modelo Lineal Secuencial

17

Diseño

El proceso de diseño se centra en cuatro atributos distintos que son:

Estructuras de datos

Arquitectura del software

Interfaz

Algoritmos

Esta etapa traduce requisitos en una representación del software que se

pueda evaluar por calidad antes de comience la generación del código,

el diseño se documenta y se hace parte de la configuración del

software.

Desarrollo

Esta etapa consiste en la generación de código legible por la maquina a

partir del diseño realizado en la etapa anterior. En esta etapa definimos

la herramienta de desarrollo a utilizar tomando en cuenta las distintas

bondades y factibilidades que esta nos ofrece.

18

Pruebas

El proceso de pruebas se centra en los procesos lógicos internos del

software asegurando que todas las sentencias sean comprobadas, es

decir la realización de las pruebas para la detección de errores y el

sentirse seguros de que la entrada definida produzca resultados reales

de acuerdo con los resultados requeridos.

19

CAPÍTULO 2

2 ANÁLISIS

2.1. Levantamiento de Información

FICHEROS LOGS

Los ficheros logs son una grabación de la actividad de una aplicación o un

servicio a lo largo de un periodo de tiempo en particular, almacenados en un

lugar específico.

Por lo general estos archivos logs son planos (tipo texto).

20

UN POCO DE HISTORIA SOBRE GNU/LINUX Y EL MOVIMIENTO GNU.

Linux nació en la Universidad de Helsinski en Finlandia en 1991, desarrollado

por un estudiante llamado Linus Torvalds, el cual inició su desarrollo como un

proyecto personal para aprender sobre sistemas operativos en su casa, pero

no existía ninguna versión de UNIX para procesadores Intel, aparte de

MINIX, que había sido desarrollado por un profesor llamado Andrew

Tanenbaum. Para Linus MINIX era demasiado limitado por su naturaleza

académica y porque no era software libre, por estas razones Linus decidió

desarrollar su propia versión de UNÍX para Intel y lo llamó Linux. El primer

anuncio público hecho por Linus buscando desarrolladores que le ayudaran

con su proyecto personal fue hecho el 25 de Agosto de 1991. La primera

versión pública (0.01) salió en Septiembre de ese mismo año, y la primera

versión estable fue liberada tres años después en 1994. Linux es licenciado

bajo la licencia GNU/GPL.

Linux es sólo el núcleo del sistema operativo. El núcleo de un sistema

operativo es un programa que se encarga de comunicarse con todos los

dispositivos de hardware y darle acceso a éstos de una forma estándar a las

aplicaciones que lo necesiten. Linux por si solo no sirve para mucho. Para

que Linux sea útil debe ser utilizado con un conjunto mínimo de herramientas

como un shell, el compilador, un editor de texto, etc. A este conjunto de

herramientas se les conoce como las herramientas GNU. Tienen ese

21

nombre porque fueron desarrolladas por el movimiento GNU, del cual vamos

a hablar mas adelante. Por esto a Linux se le conoce como GNU/Linux (y así

lo llamaremos de aquí en adelante), ya que la combinación de Linux con las

herramientas GNU es lo que hace que este sea útil. Pero para que

GNU/Linux pueda ser utilizado por un usuario final hay que entregarle algo

más que un núcleo y unas herramientas de desarrollo. Como habíamos

dicho, existen miles de aplicaciones para GNU/Linux para hacer

prácticamente cualquier tarea que un usuario puede llegar a necesitar. La

unión de GNU/Linux con un conjunto de estas aplicaciones es lo que se

conoce como una distribución de GNU/Linux. Es lo que los usuarios finales

usan. Distribuciones hay muchas, entre las principales están Red Hat,

Mandrake, Suse, Debian, Java Desktop System (JDS) y muchas más, cada

una hecha para las tareas específicas, algunas para ser utilizadas como

servidores, otras como estaciones de trabajo.

Algunas de ellas como Red Hat, Mandrake, Suse y JDS son desarrolladas

por empresas comerciales las cuales se especializan en prestar servicios

sobre sus distribuciones, y otras como Debian son desarrolladas por una

entidad comercial y su objetivo es brindarle a la gente una distribución de

GNU/Linux completamente libre.

22

EL SERVIDOR WEB APACHE

El servidor Web Apache consta de dos partes, los archivos de configuración,

logs y módulos especiales, y los archivos y scripts de la página Web. Cada

uno de estos grupos de archivos está ubicado en directorios diferentes, por lo

general los de configuración se encuentran en /etc/httpd, el cual se divide en

tres subdirectorios, conf (archivos de configuración), log (archivos de

auditoria) y modules (módulos extras para el Apache), que viene a ser un link

simbólico a/usr/lib/httpd/modules.

En el subdirectorio conf encontramos el archivo de configuración principal,

httpd.conf, el cual controla todo el comportamiento del servidor Web. Los

archivos de la pagina Web (los que se van a publicar en Internet) se

encuentra por lo general bajo el directorio /var/www, aunque esto es bastante

relativo a cada distribución. Este directorio se divide en tres subdirectorios,

html, cgi-bin e icons.

En el directorio html se encuentran, como su nombre lo dice, los documentos

para publicar, que pueden tener extensión por ejemplo. html, .shml, .cgi, .php

o pl, aunque pueden ser más. En el directorio cgi-bin se colocan los scripts o

CGI’S (Common Gateway Interface) que van a hacer invocados a través de

un cliente (browser) a nuestro servidor Apache. Estos scripts o cgi’s pueden

23

estar hechos en C/C++. Por último en el directorio icons se encuentran

algunos iconos usados por Apache.

SERVIDOR SAMBA

En las redes de las organizaciones actuales confluyen gran cantidad de

tecnologías de diferentes casas productoras en una organización común

podemos encontrar equipos con Microsoft Windows, GNU/Linux, Mac OS,

entre otros sistemas operativos pero ante la diversidad no podemos generar

en nuestra red listas de información, es una tarea de administrador hacer que

todos los componentes de la organización se comuniquen y compartan

recursos. Samba nace ante la necesidad de compartir recursos (disco e

impresión) entre sistemas Unix y MS-Windows.

Samba debe su nombre a un juego de combinación de letras basado en los

caracteres SMB, que corresponden al nombre del protocolo que permite

compartir recursos en redes Windows. La versión actual de Samba es 3.0.4.

¿Qué se puede hacer con Samba?

Con esta última versión tenemos la capacidad de configurar una máquina

que permita:

Remplazar un servidor de dominio principal (PDC) de MS- Windows NT4.

Compartir recursos con dominios del estilo MS- Windows NT4 y MS Active

Directory Domains.

Crear relaciones de confianza al estilo de redes NT4.

24

Uso de múltiples bases de datos de usuarios (Archivos de texto, LDAP,

MySQL, XML)

Crear un BDC (Backup Domain Controller) de un PDC Samba-3

Compartir archivos, directorios e impresoras.

Manejar modos de seguridad por usuario, por recurso compartido, por

dominio, por servicio de directorio y por servidor stand-alone.

EL SERVIDOR PROXY SQUID

En la actualidad toda organización o individuo necesita utilizar los diferentes

servicios provistos a través de http, FTP y/o gopher. A medida que estos

servicios evolucionan, el ancho de banda de acceso a Internet limitados, con

servicios Web multimediales en pleno auge y con bajos presupuestos

económicos, un servidor Cache se convierte en una herramienta

indispensable. Así mismo la mayoría de administradores de redes locales

necesitan configurar y monitorear el acceso de sus clientes a los servicios

Web para asegurarse de que utilizan de manera óptima el recurso, elegir

quienes pueden utilizarlo, evitar el acceso a la WWW. Es entonces cuando

un servidor Proxy puede ayudar.

Squid es un servidor Proxy y Cache de alto desempeño. Configurar Squid

puede ser tan sencillo o tan complejo como las sean las funciones que éste

debe desempeñar al interior de la red en la que se va instalar. Todos los

25

parámetros de configuración del servicio están incluidos en el archivo

/etc/squid.conf.

Al interior del archivo existen 8 conjuntos principales que reúnen más de 190

parámetros:

Red

Tamaño y ubicación en disco del cache

Archivos de registro de eventos (logs)

Control de acceso

Relación, jerarquía y registro con otros servidores Proxy/Cache

Aceleración de contenidos

Variables de administración y afinamiento de desempeño

Soporte para funciones externas

Por defecto, Squid trabaja como Proxy y por ende la mayor parte de la

configuración necesaria para iniciar el servicio corresponde a sus funciones

de Cache.

Los archivos logs son extraídos hacia la máquina donde corre la herramienta

y serán analizados.

A partir de este análisis se va a determinar qué usuarios se conectan al

Internet, a qué páginas se conectan y el tiempo que permanecen conectados

26

al Internet. Esto es factible con el análisis de los archivos generados por el

servicio squid.

Con los archivos del servicio apache vamos a determinar los accesos que

tuvo la página de la empresa en que se aplique esta herramienta, y vamos a

determinar qué tan visitada es esa página.

Los servicios generados por el servicio samba nos va a ayudar a ver los

dispositivos compartidos de la red que están siendo utilizados por los

usuarios.

2.2 Análisis de Requerimientos

Para la elaboración de nuestro sistema requerimos de los siguientes

componentes:

Configuración de los servicios Squid, Samba y Apache en el servidor Linux,

ya que estos emitirán logs, los cuales van a ser analizados mediante la

herramienta de programación para con ello llevar un mejor control de los

servicios instalados en una red.

Para poder analizar los archivos logs que se encuentran en el servidor Linux

establecemos una conexión vía Ftp, ya que el sistema va a ser instalado en

la maquina del administrador de la red.

Utilizamos este servicio ya que nos brinda la facilidad de extraer estos

archivos y llevarlos a la maquina del administrador donde va a estar instalada

nuestra aplicación, que se encargara de analizar dichos logs. Este servicio

27

posee comandos de fácil utilización es confiable y robusto a la hora de la

conexión.

Fue necesario tabular estos archivos ya que poseen gran cantidad de

información innecesaria para nuestra aplicación, y a su vez almacenarla en

una base de datos para que nos facilite la manipulación de la misma.

2.3 Diagrama de Entidad Relación (DER)

Este diagrama se compone de tres piezas de información interrelacionadas

que son:

El objeto de datos.

Los atributos que describen al objeto de datos.

Relación que conecta objetos de datos entre si.

Objeto de datos.- Un objeto de datos es una representación de cualquier

composición de información compuesta que deba comprender el software,

por composición de información entendemos todo aquello que tiene un

número de propiedades o atributos diferentes. Por ejemplo: El objeto usuario

tiene los siguientes atributos: Nombre y Dirección IP.

28

Un objeto de datos puede ser una entidad externa, una cosa, una ocurrencia

o suceso, un papel, una unidad de la organización, un lugar o una estructura.

Atributos.- Los atributos definen las propiedades de un objeto de datos y

toman una de las tres características diferentes que pueden ser:

1.- Nombrar una ocurrencia del objeto de datos

2.- Describir la ocurrencia

3.- Hacer referencia en otra tabla

Además uno o varios atributos se definen como un identificador es decir una

clave.

Usuario IP_Usuario

Objeto de

Datos.

Fig. 2.1 Objeto de Datos.

29

Atributos

Relaciones.- Los objetos de datos se conectan entre si de muchas formas

diferentes podemos definir un conjunto de parejas objeto relación que definen

las relaciones relevantes.

Cardinalidad y Modalidad.-

Cardinalidad.- El modelo de datos debe ser capas de representar el número

de ocurrencias de objetos que se dan en una relación.

La cardinalidad normalmente se expresa simplemente como uno o muchos.

Uno a Uno

Uno a Muchos

Muchos a Muchos

Modalidad.- La modalidad de una relación es cero si no hay una necesidad

explicita de que ocurra una relación que sea opcional.

Usuario IP_Usuario (Clave)

Fig. 2.2 Atributos.

30

Entidad Relación.-

La pareja objeto relación es la piedra angular del modelo de datos, estas

parejas se pueden representar gráficamente mediante el diagrama entidad

relación. El DER fue propuesto originalmente por Peter Chen para el diseño

de sistemas de base de datos relacionales y ha sido ampliado por otros.

El propósito principal del DER es representar objetos de datos y sus

relaciones.

IP_Usuario,

USUARIO Usuario

Esta tabla nos sirve para almacenar los datos de los usuarios como por

ejemplo, el nombre y la dirección IP de la computadora que este usuario

utiliza.

IP_Usuario Fecha

APACHE Hora

Método Archivo

31

Esta tabla nos sirve para guardar la información referente al servicio apache,

como por ejemplo la fecha, hora, método, etc.

IP_Usuario

SQUID Método

Dirección Fecha

Esta tabla nos sirve para guardar la información referente al servicio Squid,

como por ejemplo la IP del usuario, la fecha, dirección, método, etc.

Fecha

SAMBA Hora

Información

Esta tabla nos sirve para guardar la información referente al servicio samba,

como por ejemplo la fecha, hora, información, etc.

DEPARTAMENTO Nombre

32

Esta tabla con sus respectivos campos nos sirve para almacenar los

diferentes nombres de departamentos que crearemos en algún momento,

siempre y cuando sean necesario.

Nombre

Apellido

ACCESO_USUARIOS Nick

Password

Cargo

En esta tabla almacenamos las claves y los nombres de nick de los

diferentes usuarios que utilizaran el sistema.

Estado

codPagina

PAGINAS dirección

estado

En esta tabla se almacenara la información concerniente a las páginas

indebidas definidas por el administrador.

33

2.4 Diagrama de Flujo de Datos (DFD)

A medida que la información se mueve a través del software es modificada

por una serie de transformaciones. Este diagrama es una técnica que

representa el flujo de la información y las trasformaciones que se aplican a

los datos al moverse desde la entrada hasta la salida. El DFD es también

conocido como grafo de flujo de datos o como diagrama de burbuja.

Fig. 2.3 DER.

34

Logs (Squid, Samba, Apache)

Reportes y Gráficos

Reportes y Gráficos

Nivel Contextual DFD. (Nivel 0).

HERRAMIENTAS

Control del uso de Internet.

Control de Recursos

compartidos en la red (Archivos

Impresoras)

Servicios

Fig. 2.4 DFD Nivel Contextual.

34

35

Conexión (Vía FTP).

Logs Samba

Logs Squid

Logs Apache

Información Tabulada

Información Tabulada

Información Tabulada

Interactuar con la base y

la interface.

Squid, Apache, Samba.

Criterio de Selección (fecha, usuario)

Emisión Presentación de Gráficos

35

Nivel 1 DFD

Tabular Archivo

Log.

Tabular Archivo

Log.

Almacenar

Base de Datos.

Tabular Archivo

Log.

Captura de Información

(Logs).

Servicio de

Linux.

Interactuar

con la interface.

Visualizar

Información del

Servicio.

Seleccionar

Servicio.

Reportes.

Gráficos.

Fig. 2.5 DFD Nivel 1.

36

2.5 Diagramación de Procesos.

Confidencialidad.-

Este documento se ha diseñado para los usuarios de CISC que

requieran conocer del proceso, mantenimiento preventivo y correctivo

del software analizador de logs, usuarios y servicios que van a utilizar

la herramienta antes mencionada. Este sistema no debe de estar en

manos de personas extrañas a la organización y/o no autorizadas.

Cualquier proceso adoptado por la organización en sus procesos

operacionales y administrativos debe ser clasificado como

confidencial.

Documento de Control.-

Resumen de Actualizaciones

Versión

Fecha de

Versión

Naturaleza del Cambio Revisión

Fecha de

Aprobación

A 23/04/05 Versión Inicial 1

Aprobación de los Cambios al Documento

Organización Nombre Cargo Teléfono Dirección Electrónica CISC Roberto León 095167500 [email protected] CISC Bolívar Herrera 098158336 [email protected] CISC Francisco Palacios 099452867 [email protected] CISC Luís Choèz 099034144 [email protected]

37

Planeamiento de Revisión de Documento

Este documento será revisado y actualizado, si es necesario como

sigue:

Cuando se requiera la corrección o adición de información;

Siguiendo cualquier cambio o reestructuración;

Distribución del Documento

Este documento será distribuido automáticamente para todos los

usuarios del sistema e involucrados dentro de este documento.

Consideraciones del Documento

Para mayor información si existe alguna duda sobre el proceso o

procedimiento, consultar con el equipo de desarrollo.

Introducción.-

Propósito de este Documento.-

El propósito de este documento es proporcionar un Proceso Común a

todo el Sistema y Organización, que:

Sea claro, fácil de entender, leer y encontrar

38

Incluya elementos importantes al sistema de gestión de la

calidad.

Cumpla con los estándares de la Organización que lo baya a

utilizar.

Quien debe utilizar este documento.-

Este documento debe ser utilizado por:

Gerente de Sistemas.

Las personas que tengan permiso y puedan acceder a esta

información Ej. Administradores, operadores de sistemas.

2.5.1 Proceso de Captura y Tabulación de logs y Almacenamiento en la

Base de Datos.

2.5.1.1 Resumen.-

Esta sección define el proceso de captura y tabulación de los archivos

logs y almacenamiento en la base de datos, identificando el alcance,

objetivos, y principales características.

39

2.5.1.2 Definiciones.-

Término: servicios Definición: En terminología informática un servicio es un conjunto de aplicaciones que se están ejecutando o que se van a ejecutar en una PC.

Término: Logs Definición: Archivos planos en formato texto donde se guardan todos los procesos que se realizan en el computador o en la red, almacenados en directorios específicos de la PC.

.

2.5.1.3 Descripción.-

En este proceso capturamos los archivos logs de los servicios Squid,

Apache, y Samba que se encuentran en el servidor Suse Linux.

Estos archivos son analizados en el computador donde esta instalada

la herramienta, luego son tabulados y almacenados en la base de

datos.

40

2.5.1.4 Objetivos.-

Generales

Capturar la información proveniente de los archivos logs dentro

del servidor Linux donde están almacenados los logs de

Apache, Samba, Squid.

Específicos

Capturar los archivos logs para luego almacenarlos en la

base de datos.

Almacenar la información necesaria en una base de

datos definida.

2.5.1.5 Alcance.-

El alcance de este proceso consiste en capturar la información

concerniente a los logs de Linux (Squid, Apache, Samba).

Almacenar los archivos en la base de datos definida en los alcances

del proyecto.

2.5.1.6 Roles y Responsabilidades.-

Esta sección lista los nombres de los roles involucrados que

intervienen en el Proceso captura y tabulación de los archivos logs y

41

almacenamiento en la base de datos como lo son los servicios

Apache, Squid y Samba.

Consideraciones:

Las responsabilidades incluyen pero no se limitan a aquéllos

listados para cada rol.

Rol significa un grupo de tareas. No significan atar a una

estructura en particular.

Varios roles podrían ser realizados por el mismo individuo.

Un rol puede tratarse entre varios individuos.

Roles.-

Dentro del proceso de captura y tabulación de los archivos logs y

almacenamiento en la base de datos existen los siguientes roles o

actores:

Administrador de la Red.

Líder del Departamento.

Soporte de software. (Integrantes del grupo de desarrollo del

sistema.)

42

Las responsabilidades de los roles están incluidas en esta lista

pero no se deben limitar a la necesidad de servicio

La descripción de estos roles no necesariamente está relacionada

con la forma de la estructura organizacional.

Responsabilidades.-

Administrador de la Red.

Sus funciones son:

Controlar que se ejecute de manera correcta la aplicación.

Notificar al líder del departamento cualquier anomalía que se

presente en la aplicación

Líder del Departamento.

Sus funciones son:

Notificar al soporte del sistema en caso de que hubiera algún error

con el sistema.

Supervisar al administrador de la Red.

Soporte de software.

Sus funciones son:

Solucionar problemas que existan con el software.

43

Proveer de actualizaciones que puedan existir del sistema en este

proceso.

2.5.1.7 Procedimientos.-

Esta sección detalla los procedimientos del Proceso de Captura y

Tabulación de logs y Almacenamiento en la Base de Datos.

Captura de los Archivos Logs.

El software debe de correr al encender el computador, la

|herramienta ejecuta el archivo CAPTURA.BAT. Este archivo

establece una conexión ftp entre el computador que está

instalado el software y el servidor Unix. Captura.bat es un

archivo plano y ejecutable en el cual cada línea es una

sentencia.

La forma en que se establece la conexión ftp es escribiendo el

siguiente comando:

ftp -n 192.168.0.61 < captura.trn

La dirección IP que estamos utilizando es referencial, ya que

debe de ir la IP del servidor donde estén instalados los

servicios.

44

La sentencia nos está indicando que realice ftp a la PC que

tiene la IP que le indicamos y que luego ejecute el archivo

CAPTURA.TRN.

El archivo CAPTURA.TRN contiene las siguientes sentencias:

Prompt off, con esto desactivo el modo interactivo , es decir que

si hay que realizar la trasferencia de dos o mas archivos

realizarlo todos al mismo tiempo y no me pida la confirmación

por cada uno de ellos.

Luego tenemos una sentencia:

User usuario contraseña, con esta sentencia le estamos

ingresando el usuario y la contraseña.

Tenemos la sentencia:

ASCII, esta sentencia define el tipo de archivo o archivos que se

están trasfiriendo. En este caso como son archivos planos

utilizamos tipo ASCII.

Utilizamos los comandos cd y lcd.

El cd nos permite cambiarnos de directorio en el computador

remoto, en este caso el servidor donde están instalados los

servicios.

El lcd nos permite cambiarnos de directorio en el computador

local, es decir donde esta instalada la herramienta.

45

Con esta sentencia literal site umask 002, habilitamos ciertos

permisos a los archivo que capturamos.

Con la sentencia get nombre_archivo.extensión, estoy

realizando la transferencia del archivo desde el servidor

(maquina remota) hacia el computador donde esta instalada la

herramienta (maquina local).

Con la sentencia put nombre_archivo.extensión, estoy

realizando la transferencia del archivo desde la maquina local

hacia la maquina remota, es decir del computador donde esta

instalado el software hacia el servidor.

Esto se realiza para capturar los tres archivos.

Tabulación de los Archivo Logs.

Una vez capturados los archivos logs, la herramienta los abre y

comienza a barrerse todo el archivo capturando línea por línea,

almacenándolos en variables de tipo string. Luego se analiza

cada línea, realizando validaciones por caracteres o espacios

en blanco, para poder identificar la información necesaria para

el sistema.

46

Almacenamiento en la Base de Datos.

La información que se identifico como necesaria en el

procedimiento de tabulación es almacenada en tablas de una

base de datos.

47

C a r g o / P r o c e s o C l i e n t e P r o c e s o O b s e r v a c i o n e s

P r o c e s o

R e l a c i o n a - d o A l m a c e n a m i e n t o d e D a t o s

E l a d m i n i s t r a d o r

e n c i e n d e l a P C y e l

p r o c e s o s e r e a l i z a

a u t o m á t i c a m e n t e .

E n e l s e r v i d o r l o s a r c h i v o s

l o g s s e e n c u e n t r a n e n l o s

s i g u i e n t e s d i r e c t o r i o s : v a r \ l o g .

E n l a P C d o n d e v a i n s t a l a d a

l a h e r r a m i e n t a l a i n f o r m a c i ó n

t a b u l a d a s e a l m a c e n a e n

c : \ l o g s \ b a s e .

Q u e e l p r o c e s o

a u t o m á t i c a m e n t e

s e e j e c u t e a l

e n c e n d e r l a P C

d o n d e e s t a

i n s t a l a d a l a

h e r r a m i e n t a .

L o s u s u a r i o s

d e l a

o r g a n i z a c i ó n .

I n i c i o

F t p i p _ s e r v i d o r

" D e s a c t i v a r m o d o

i n t e r a c t i v o "

P r o n t o f f

" I n g r e s a m o s u s u a r i o y

c o n t r a s e ñ a d e l s e r v i d o r "

U s e r u s u a r i o c o n t r a s e ñ a

" D e f i n i m o s e l t i p o d e a r c h i v o

q u e v a m o s a t r a n s f e r i r "

A S C I I

" U b i c a r s e d o n d e s e a l m a c e n a n

l o s a r c h i v o s l o g s d e l S u i d "

c d / d i r e c t o r i o _ l o g s _ s q u i d

" U b i c a c i ò n e n e l d i r e c t o r i o d o n d e s e c o p i a r a n l o s

a r c h i v o s l o g s d e s q u i d d e l a m a q u i n a l o c a l "

l c d c : \ p r u e b a \ l o g s

" D e f i n i c i ò n d e a t r i b u t o s a l o s a r c h i v o s

q u e e s t a n s i e n d o e x t r a i d o s "

l i t e r a l s i t e u m a s k 0 0 2

T r a s f e r e n c i a d e a r c h i v o d e p c r e m o t a

h a c i a p c l o c a l .

g e t n o m b r e _ a r c h i v o . e x t

M e u b i c o e n e l m i s m o d i r e c t o r i o d e l s q u i d

d e n t r o d e l s e r v i d o r r e m o t a m e n t e , p a r a r e a l i z a r

r e s p a l d o d e l o s a r c h i v o s l o g s .

c d / l o g s / s q u i d / r e s p

" E n v i o d e l a r c h i v o c a p t u r a d o e n e l s e r v i d o r h a c i a e l

d i r e c t o r i o d e r e s p a l d o "

p u t n o m b r e _ a r c h i v o . e x t n o m b r e _ a r c h i v o . t x t

M e u b i c o e n u n d i r e c t o r i o a n t e r i o r q u e e s d o n d e

e s t a n o m b r e _ a r c h i v o . e x t e n b l a n c o .

l c d . .

" M e u b i c o e n e l d i r e c t o r i o d e l s e r v i d o r

d o n d e s e a l m a c e n a l o s l o g s d e S q u i d "

c d / d i r e c t o r i o _ l o g s _ s q u i d

" T r a n f i e r e a r c h i v o e n b l a n c o d e s d e l a

p c l o c a l h a c i a e l s e r v i d o r "

p u t a c c e s s . l o g

A

48

" U b i c a r s e d o n d e s e a l m a c e n a n

l o s a r c h i v o s l o g s d e S a m b a "

c d / d i r e c t o r i o _ l o g s _ s a m b a

" U b i c a c i ò n e n e l d i r e c t o r i o d o n d e s e c o p i a r a n l o s

a r c h i v o s l o g s d e s a m b a d e l a m a q u i n a l o c a l "

l c d c : \ p r u e b a \ l o g s

" D e f i n i c i ò n d e a t r i b u t o s a l o s a r c h i v o s

q u e e s t a n s i e n d o e x t r a i d o s "

l i t e r a l s i t e u m a s k 0 0 2

T r a s f e r e n c i a d e a r c h i v o d e p c r e m o t a

h a c i a p c l o c a l .

g e t n o m b r e _ a r c h i v o . e x t

M e u b i c o e n e l m i s m o d i r e c t o r i o d e l s a m b a

d e n t r o d e l s e r v i d o r r e m o t a m e n t e , p a r a r e a l i z a r

r e s p a l d o d e l o s a r c h i v o s l o g s .

c d / l o g s / s a m b a / r e s p

" E n v i o d e l a r c h i v o c a p t u r a d o e n e l s e r v i d o r h a c i a e l

d i r e c t o r i o d e r e s p a l d o "

p u t n o m b r e _ a r c h i v o . e x t n o m b r e _ a r c h i v o . t x t

M e u b i c o e n u n d i r e c t o r i o a n t e r i o r q u e e s d o n d e

e s t a n o m b r e _ a r c h i v o . e x t e n b l a n c o .

l c d . .

" M e u b i c o e n e l d i r e c t o r i o d e l s e r v i d o r

d o n d e s e a l m a c e n a l o s l o g s d e S a m b a "

c d / d i r e c t o r i o _ l o g s _ s a m b a

" T r a n f i e r e a r c h i v o e n b l a n c o d e s d e l a

p c l o c a l h a c i a e l s e r v i d o r "

p u t a c c e s s . l o g

" U b i c a r s e d o n d e s e a l m a c e n a n

l o s a r c h i v o s l o g s d e l A p a c h e "

c d / d i r e c t o r i o _ l o g s _ a p a c h e

" U b i c a c i ò n e n e l d i r e c t o r i o d o n d e s e c o p i a r a n l o s

a r c h i v o s l o g s d e a p a c h e d e l a m a q u i n a l o c a l "

l c d c : \ p r u e b a \ l o g s

" D e f i n i c i ò n d e a t r i b u t o s a l o s a r c h i v o s

q u e e s t a n s i e n d o e x t r a i d o s "

l i t e r a l s i t e u m a s k 0 0 2

T r a s f e r e n c i a d e a r c h i v o d e p c r e m o t a

h a c i a p c l o c a l .

g e t n o m b r e _ a r c h i v o . e x t

M e u b i c o e n e l m i s m o d i r e c t o r i o d e l s q u i d

d e n t r o d e l s e r v i d o r r e m o t a m e n t e , p a r a r e a l i z a r

r e s p a l d o d e l o s a r c h i v o s l o g s .

c d / l o g s / a p a c h e / r e s p

B

A

49

" E n v i o d e l a r c h i v o c a p t u r a d o e n e l s e r v i d o r h a c i a e l

d i r e c t o r i o d e r e s p a l d o "

p u t n o m b r e _ a r c h i v o . e x t n o m b r e _ a r c h i v o . t x t

M e u b i c o e n u n d i r e c t o r i o a n t e r i o r q u e e s d o n d e

e s t a n o m b r e _ a r c h i v o . e x t e n b l a n c o .

l c d . .

" M e u b i c o e n e l d i r e c t o r i o d e l s e r v i d o r

d o n d e s e a l m a c e n a l o s l o g s d e S q u i d "

c d / d i r e c t o r i o _ l o g s _ a p a c h e

" T r a n f i e r e a r c h i v o e n b l a n c o d e s d e l a

p c l o c a l h a c i a e l s e r v i d o r "

p u t a c c e s s . l o g

B

C

2.5.2 Proceso de Validación de Login de Usuario y contraseña para

acceder al sistema.

2.5.2.1 Resumen

En esta sección se define el proceso de validación de usuario para

acceder al sistema, Identificando el alcance, objetivos, y principales

características.

50

2.5.2.2 Definiciones

2.5.2.3 Descripción

El sistema nos presenta una interface en la cual nos permite ingresar

un usuario con su respectiva contraseña esta información se valida, si

los datos son correctos el sistema nos permite el ingreso.

Previamente el administrador tiene que ingresar los usuarios y

contraseñas en la base de datos.

2.5.2.4 Objetivos

Generales

Restringir el acceso a personas no autorizadas.

Término: Login Definición: Es el nombre que le asignamos al usuario que va administrar el sistema.

Término: Password Definición: Es la contraseña que se ingresa junto con el login del usuario para poder acceder al sistema.

.

51

Específicos

Ingresar login y la contraseña en la interface que nos presenta el

sistema.

Validar esta información en la tabla Usuarios de la base de datos.

Si el login y la contraseña ingresada es incorrecta enviar mensajes de

error.

2.5.2.5 Alcance

Tener un software seguro que restrinja el ingreso a personal no

autorizado.

2.5.2.6 Procedimientos

En esta sección se detallan los procedimientos del proceso de

validación de usuario y contraseñas para ingresar al sistema.

Ingresar información

En este procedimiento ingresamos el usuario y contraseña en la

interface de la herramienta.

52

Consultar la Base de Datos.

Realizamos una consulta a la tabla Usuarios de la base de datos para

comparar con la información ingresada.

En este procedimiento es donde realmente se está validando el login y

contraseña que se ingresa.

Si los datos son correctos permitimos el ingreso a la herramienta, caso

contrario enviamos mensaje de error.

53

I n g r e s e L o g i n

I n g r e s e C o n t r a s e ñ a

C o n s u l t a r B a s e d e D a t o s

x = x + 1

S i

L o g i n =

N i c k

C o n t r a s e ñ a

= P a s s w o r d 1

C o n t r a s e ñ a

I n c o r r e c t a2

X = N

U s u a r i o

I n c o r r e c t o3

2

3

C

S

N

S

N

S

N

D

54

2.5.3 Proceso Menú Principal

2.5.3.1 Resumen

En esta sección se define todas las opciones que contiene el sistema.

En este proceso tenemos para seleccionar el servicio para analizar,

también tenemos la opción mantenimiento en la cual le ingresamos

información al sistema para que el pueda realizar las validaciones

respectivas.

2.5.3.2 Definiciones

Término:

Squid

Definición:

Es un servicio de Linux, este es el que nos permite navegar en el Internet, funciona como Proxy.

Término:

Apache

Definición:

Es un servicio de Linux, este funciona como Web Server. .

Término:

Samba

Definición:

Es un servicio de Linux, nos permite hacer uso de los recursos compartidos de la red.

Término:

Web Server

Definición:

Es el sitio donde se ejecuta y está almacenada la página Web de la organización.

55

2.5.3.3 Descripción.

Es la interface principal del sistema. Es donde nos presenta todas las

opciones tanto como para analizar los servicios Squid, Apache y

Samba, como para el ingreso de la información que nos permite la

validación.

Tenemos la opción Servicios, la cual nos permite escoger las

siguientes opciones:

Squid

Apache

Samba

Salir

Podemos seleccionar cualquiera de los tres servicios para que sean

analizados o la opción salir para cerrar el sistema.

Otra opción que nos brinda esta parte es Mantenimiento, la misma

que a su vez nos presenta las opciones:

Usuarios registrados

Paginas no permitidas

Login Usuarios

Departamentos

56

Usuarios registrados nos permite ingresar los nombres de usuarios

con sus respectivas direcciones IP.

Páginas no permitidas esta opción permite ingresar nombres de

páginas web las cuales son consideradas páginas no permitidas.

Login Usuarios permite ingresar usuarios con sus respectivas

contraseñas para administrar el sistema.

Departamentos permite ingresar nombres de departamentos para la

organización.

2.5.3.4 Objetivos

Generales

En este proceso nos presenta las opciones principales del sistema

para analizar los archivos logs de los servicios Squid, Apache, Samba.

Específicos

Analiza los servicios antes mencionado, presentando la información

más relevante de cada servicio, presenta repote y genera gráficos.

Esta información puede ser presentada por fecha o por usuario.

57

Si seleccionamos por usuario nos presenta todos los departamentos

que contiene la organización, y dentro de cada departamento tenemos

los usuarios.

2.5.3.5 Alcance

Emitir reportes o gráficos que nos permita llevar un control sobre los

usuarios que hacen uso del Internet y de otros recursos compartidos

de la red.

2.5.3.6 Procedimientos

En esta sección se detallan los procedimientos de de este proceso.

Consultas por criterios de búsqueda

Tenemos consultas a la base de datos por los siguientes criterios de

búsqueda:

Por Usuario

Por Fecha

Todo

58

Estos dos criterios de búsqueda son para todos los servicios

Mantenimiento

En este procedimiento ingresamos la información con la cual el

sistema se alimenta y junto a la información capturada de los archivos

logs no ayuda a la emisión de los reportes y gráficos.

59

D

O p c i o n e s d e l M e n ú

P r i n c i p a l

O p c i ó n

S e r v i c i o s

O p c i ó n

M a n t e n i m i e n t o

O p c i ó n

A y u d a

S a l i r d e l S i s t e m a .

S e l e c c i o n a r O p c i o n e s

S q u i d

A p a c h e

S a m b a

S e l e c c i o n a r O p c i o n e s

U s u a r i o s R e g i s t r a d o s

P a g i n a s n o P e r m i t i d a s

L o g i n U s u a r i o s

D e p a r t a m e n t o s

S e l e c c i o n a r O p c i o n e s

M a n u a l d e U s u a r i o

A c e r c a d e

4

5

6

4

5

6

S e l e c c i o n a r O p c i o n e s

S

N

S

N

S

N

F i n

60

2.5.4 Proceso del Servicio Squid

2.5.4.1 Resumen

En esta sección se define el proceso del servicio squid, el cual nos

permite visualizar reportes, emitir gráficos y enviarlos a imprimir.

2.5.4.2 Definiciones

2.5.4.3 Descripción

En este proceso emitimos reportes y gráficos de acuerdo al criterio de

búsqueda seleccionado, los mismos que son:

Por usuario

Por fecha

Todos

Término:

Combobox

Definición: Es el nombre del componente que contiene los diferentes criterios de búsqueda.

Término:

Msflexgrid

Definición: Es el nombre del componente en el cual se va a visualizar la información requerida para el usuario.

61

Si seleccionamos por fecha aparecerá un calendario el cual nos

permitirá seleccionar la fecha deseada.

Si seleccionamos por usuario nos aparecerá un combo el cual nos

permite seleccionar un nombre de departamento de la organización y

también un combo que contiene la lista de los usuarios que laboran en

el departamento seleccionado.

2.5.4.4 Objetivos

Generales

Emitir reportes y gráficos de los servicios seleccionados, para poder

analizar la información.

Específicos

Mostrar información relevante del archivo log del servicio Squid.

Presenta la IP del usuario que se conecta a Internet, la fecha de

conexión, presenta durante la conexión realiza un método Get o Post

y la página a la que se conectó el usuario.

62

A partir de esta información que se visualiza en un msflexgrid,

tenemos la opción de imprimir esa información en forma de reporte .

También emite un gráfico el cual nos indica que usuario se ha

conectado a alguna página no permitida, las cuales las tenemos

definidas en la base de datos.

2.5.4.5 Alcance

Emitir reportes y gráficos para poder analizar de mejor forma la

información del archivo log del servicio Squid.

2.5.4.6 Procedimientos

En esta sección se detallan los procedimientos del proceso Servicio

Squid.

Consultar la Base de Datos.

Realizamos una consulta a la base de datos dependiendo el criterio de

búsqueda que seleccionemos.

Reporte

Este procedimiento muestra información en el msflexgrid

dependiendo la información que seleccionemos en los combos.

63

Gráfico

Emite un gráfico que nos muestra que usuario se conecto a las

páginas no permitidas definidas en la base de datos.

Imprimir

Imprime el reporte que visualizamos en el msflexgrid.

2.5.5 Proceso del Servicio Apache

2.5.5.1 Resumen

En esta sección se define el proceso del servicio apache, el cual nos

permite visualizar reportes, emitir gráficos y enviarlos a imprimir.

2.5.5.2 Definiciones

Término:

Combobox

Definición: Es el nombre del componente que contiene los diferentes criterios de búsqueda.

Término:

Msflexgrid

Definición: Es el nombre del componente en el cual se va a visualizar la información requerida para el usuario.

64

2.5.5.3 Descripción

En este proceso emitimos reportes y gráficos de acuerdo al criterio de

búsqueda seleccionado, los mismos que son:

Por usuario

Por fecha

Todos

Si seleccionamos por fecha aparecerá un calendario el cual nos

permitirá seleccionar la fecha deseada.

Si seleccionamos por usuario nos aparecerá un combo el cual nos

permite seleccionar un nombre de departamento de la organización y

también un combo que contiene la lista de los usuarios que laboran en

el departamento seleccionado.

2.5.5.4 Objetivos

Generales

Emitir reportes y gráficos de los servicios seleccionados, para poder

analizar la información.

65

Específicos

Mostrar información relevante del archivo log del servicio Apache.

Presenta la IP del usuario que se conecto vía Internet a nuestro

servidor Web, la fecha de conexión, y el método Get o Post.

A partir de esta información que se visualiza en un msflexgrid,

tenemos la opción de imprimir esa información en forma de reporte.

También emite un gráfico el cual nos indica a que hora fue mas

visitada nuestra pagina, esta información la tenemos almacenada en

una base de datos las cuales nos permiten emitir la información antes

mencionada.

2.5.5.5 Alcance

Emitir reportes y gráficos para poder analizar de mejor forma la

información del archivo log del servicio Apache.

2.5.5.6 Procedimientos

En esta sección se detallan los procedimientos del proceso Servicio

Apache.

66

Consultar la Base de Datos.

Realizamos una consulta a la base de datos dependiendo el criterio de

búsqueda que seleccionemos.

Reporte

Este procedimiento muestra información en el msflexgrid

dependiendo la información que seleccionemos en los combos.

Gráfico

Emite un gráfico que nos muestra en que horario nuestra pagina fue

mas visitada esta información esta definida en la base de datos.

Imprimir

Imprime el reporte que visualizamos en el msflexgrid.

2.5.6 Proceso del Servicio Samba

2.5.6.1 Resumen

En esta sección se define el proceso del servicio samba, el cual nos

permite visualizar reportes, emitir gráficos y enviarlos a imprimir.

67

2.5.6.2 Definiciones

2.5.6.3 Descripción

En este proceso emitimos reportes y gráficos de acuerdo al criterio de

búsqueda seleccionado, los mismos que son:

Por usuario

Por fecha

Todos

Si seleccionamos por fecha aparecerá un calendario el cual nos

permitirá seleccionar la fecha deseada.

Si seleccionamos por usuario nos aparecerá un combo el cual nos

permite seleccionar un nombre de departamento de la organización y

también un combo que contiene la lista de los usuarios que laboran en

el departamento seleccionado.

Término:

Combobox

Definición: Es el nombre del componente que contiene los diferentes criterios de búsqueda.

Término:

Msflexgrid

Definición: Es el nombre del componente en el cual se va a visualizar la información requerida para el usuario.

68

2.5.6.4 Objetivos

Generales

Emitir reportes y gráficos de los servicios seleccionados, para poder

analizar la información.

Específicos

Mostrar información relevante del archivo log del servicio Samba.

Presenta Información concerniente a la organización detallando en

que horas del día existió mas trafico de la red dentro de nuestra

compañía.

A partir de esta información que se visualiza en un msflexgrid,

tenemos la opción de imprimir esa información en forma de reporte.

También emite un gráfico el cual nos indica cuales son las horas de

más tráfico, esta información esta almacenada en una base de datos

definida, en la cual se almacena toda la información del log de Samba.

69

2.5.6.5 Alcance

Emitir reportes y gráficos para poder analizar de mejor forma la

información del archivo log del servicio Samba.

2.5.6.6 Procedimientos

En esta sección se detallan los procedimientos del proceso Servicio

Apache.

Consultar la Base de Datos.

Realizamos una consulta a la base de datos dependiendo el criterio de

búsqueda que seleccionemos.

Reporte

Este procedimiento muestra información en el msflexgrid

dependiendo la información que seleccionemos en los combos.

Gráfico

Emite un gráfico que nos muestra la información del servicio y en

especial la hora con mayor trafico en la red de la organización.

70

Imprimir

Imprime el reporte que visualizamos en el msflexgrid.

71

CAPÍTULO 3

3 DISEÑO

3.1 Diseño de Datos

El diseño de datos es la primera actividad de diseño que se lleva a cabo

durante la ingeniería del software.

Esta actividad consiste en seleccionar representaciones lógicas de objetos

de datos (estructuras de datos) identificadas durantes la fase de definición y

especificación de requisitos.

El proceso de selección puede incluir el análisis de estructuras alternativas

para determinar el diseño más eficaz o puede incluir simplemente el empleo

de un conjunto de módulos que proporcione las operaciones deseadas sobre

alguna representación de un objeto.

72

Dentro del diseño de datos tenemos varios principios que se emplean. Unos

datos bien diseñados pueden conducir a una mejor estructura y modularidad

del programa.

Entre los diferentes principios tenemos los siguientes:

1.- Los principios del análisis sistemático aplicado en la función y al

comportamiento deberían aplicarse también a los datos.

2.- Todas las estructuras de datos y las operaciones a llevar a cabo en una

de ellas deberían estar claramente identificadas.

3.- Se debería establecer un directorio de datos y usarlo para definir el diseño

de los datos y del programa.

4.- Las decisiones de diseño de datos de bajo nivel debería dejarse para el

final del proceso de diseño.

5.- La representación de las estructuras de datos debería conocerla sólo

aquellos módulos que deban hacer uso directo de los datos contenidos

dentro de la estructura.

73

6.- Debería desarrollarse una biblioteca de estructuras de datos útiles y de

las operaciones que se les pueden aplicar.

7.- Un diseño del software y un lenguaje de programación debería soportar la

especificación y realización de los tipos abstractos de datos.

3.2 Estructura de la Base de Datos

Tabla AccesoUsuario. Campo codUsuario

Fig. 3.1 Tabla AccesoUsuario Campo codusuario.

74

Tabla AccesoUsuario Campo nombre

Fig. 3.2 Tabla AccesoUsuario Campo Nombre.

75

Tabla AccesoUsuario Campo apellido

Fig. 3.3 Tabla AccesoUsuario Campo Apellido.

76

Tabla AccesoUsuario Campo nick

Fig. 3.4 Tabla AccesoUsuario Campo Nink.

77

Tabla AccesoUsuario Campo password

Fig. 3.5 Tabla AccesoUsuario Campo password.

78

Tabla AccesoUsuario Campo cargo

Fig. 3.6 Tabla AccesoUsuario Campo cargo.

79

Tabla AccesoUsuario Campo estado

Fig. 3.7 Tabla AccesoUsuario Campo estado.

80

Tabla Squid Campo IP

Fig. 3.8 Tabla squid Campo IP.

81

Tabla Squid Campo método

Fig. 3.9 Tabla squid Campo método.

82

Tabla Squid Campo dirección

Fig. 3.10 Tabla squid Campo dirección.

83

Tabla Squid Campo fecha

Fig. 3.11 Tabla squid Campo Fecha.

84

Tabla Apache Campo IP

Fig. 3.12 Tabla Apache Campo IP.

85

Tabla Apache Campo fecha

Fig. 3.13 Tabla Apache Campo fecha.

86

Tabla Apache Campo hora

Fig. 3.14 Tabla Apache Campo hora.

87

Tabla Apache Campo método

Fig. 3.15 Tabla Apache Campo método.

88

Tabla Apache Campo archivo

Fig. 3.16 Tabla Apache Campo archivo.

89

Tabla Samba Campo fecha

Fig. 3.17 Tabla Samba Campo fecha.

90

Tabla Samba Campo hora

Fig. 3.18 Tabla Samba Campo hora.

91

Tabla Samba Campo información

Fig. 3.19 Tabla Samba Campo información.

92

Tabla Usuario Campo IP

Fig. 3.20 Tabla Usuario Campo IP.

93

Tabla Usuario Campo usuario

Fig. 3.21 Tabla Usuario Campo usuario.

94

Tabla Usuario Campo codDep

Fig. 3.22 Tabla Usuario Campo codDep.

95

Tabla Usuario Campo estado

Fig. 3.23 Tabla Usuario Campo estado.

96

Tabla Departamentos Campo codDep

Fig. 3.24 Tabla Departamentos Campo codDep.

97

Tabla Departamento Campo nombre

Fig. 3.25 Tabla Departamentos Campo nombre.

98

Tabla Páginas Campo codPagina

Fig. 3.26 Tabla Paginas Campo codpagina.

99

Tabla Página Campo dirección

Fig. 3.27 Tabla Paginas Campo dirección.

100

Tabla Páginas Campo estado

Fig. 3.28 Tabla Paginas Campo estado.

101

3.3 Diseño Arquitectónico

Seleccionar criterios de búsqueda.

Apache.

Seleccionar criterios de búsqueda.

Samba

Seleccionar Servicios.

Interacción con la Interface.

Squid.

Visualizar Información.

Visualizar Información.

Almacenamiento en la base de datos.

Establecer conexión vía Ftp.

Captura de archivos Logs.

Tabulaciòn de los archivos Logs.

Inicio

Reportes Y Gráficos

Diseño

Arquitectónico.

Seleccionar criterios de búsqueda.

Visualizar Información.

Ingreso de programas

instalados.

Almacenamiento en la Base de Datos.

Fig. 3.29 Diseño Arquitectónico

102

3.4 Diseño de Interfaz

3.4.1 Introducción

Lewis y Rieman [1993] definen las interfaces hombre computadora como:

Las interfaces básicas de usuario son aquellas que incluyen cosas como

menús, ventanas, teclado, ratón, los “beeps” y algunos otros sonidos que la

computadora hace, en general, todos aquellos canales por los cuales se

permite la comunicación entre el hombre y la computadora.

Los tres estilos más comunes de interfaces gráficas hombre-computadora

son: Lo que tú ves es lo que puedes conseguir (WYSIWYG What you see is

what you get), manipulación directa e Interfaces de usuario basados en

iconos.

3.4.1.1 Lo que tú ves es lo que puedes conseguir (WYSIWYG).

En una interfaz WYSIWYG la representación gráfica con la cual los

usuarios interactúan en la pantalla es esencialmente la misma imagen

creada por la aplicación. Muchas de las aplicaciones gráficas tienen

algún componente WYSIWYG.

103

Existen muchos editores que tienen interfaces WYSIWYG;

principalmente aquellas aplicaciones gráficas. Lo que nosotros vemos

en la pantalla es el resultado de nuestra aplicación en papel.

Consideremos el siguiente ejemplo: Así como veo este párrafo en la

pantalla, así se verá en el papel, incluyendo la palabra bold, italic,

tamaño, así como la sangría, los márgenes etc.

Las interfaces WYSIWYG tienen algunas desventajas:

Elementos como la resolución, la intensidad del color y algunas otras

características no son iguales en una pantalla y en un dispositivo de

impresión, por lo que es muy difícil crear una copia exacta de la

pantalla en nuestro papel.

Otro problema mayor, es que algunas aplicaciones no pueden ser

implementadas con puro WYSIWYG. Consideremos los Procesadores

de textos, las interfaces más comunes de este tipo.

En estas interfaces nosotros podemos crear gráficas, cambiar tipos

de letras, tamaños etc. pero algunas veces no podemos hacer

cambios escalares en la tarea del usuario,(p. eje. mover directamente

104

el tamaño de la sangría arrastrando un botón de derecha a izquierda

dentro de la hoja) pero sí podríamos hacerla con algún otro tipo de

interacción, cuando esto sucede este tipo de interfaces son llamadas

despreciablemente como: lo que tú ves es todo lo que puedes

conseguir (WYSIAYG - What you get is all you get).

3.4.1.2 El Proceso del Diseño Centrado en las Tareas de los

Usuarios.

La interfaz será un fracaso si el sistema no hace lo que los usuarios

necesitan, en otras palabras, el sistema debe de cumplir con las

tareas de los usuarios.

Es por esto, que el proceso del diseño presentado se define como

“centrado en las tareas del usuario”, y por esta razón, el diseño de

la interfaz no puede ser separada del diseño del resto del sistema.

Existen 11 pasos en el proceso de diseño “centrado en las tareas”:

Entender quien usará el sistema para hacer qué.

Elegir tareas representativas para el diseño.

Plagiar o copiar.

105

Bosquejar un diseño.

Pensar acerca del diseño.

Crear un prototipo.

Evaluarla con los usuarios.

Repetir.

Construirla.

Rastrearla.

Cambiarla.

Explicaremos a continuación con detalle los tres primeros pasos del

diseño centrado en tareas, por considerarlos los más importantes.

1. Entender quien usará el sistema para hacer que.

Este paso es llamado “análisis de usuarios y tareas”. La

necesidad de análisis de tareas debe ser obvio debido a que si se

construye un gran sistema que no hace lo que nosotros

necesitamos, muy probablemente será un fracaso. Pero, más aún

que un simple “haz lo que se necesita”, un sistema exitoso debe de

integrarse fácilmente al mundo en donde se encuentra el usuario

y a su trabajo.

106

Es muy importante conocer a fondo a los usuarios, ya que ellos

responderán a muchas preguntas que probablemente se tendrán:

- ¿Qué nombres usar en cada elemento del menú?

-¿Qué deben de incluir los paquetes de entrenamiento y ayuda?

-¿Qué características debe de proveer el sistema?

2. Elegir tareas representativas para el diseño.

En este paso, el diseñador deberá identificar varias tareas

representativas que el sistema llevará a cabo. Los usuarios son los

encargados de describir estas tareas a los diseñadores. Las tareas

inicialmente podrán ser descritas por los usuarios con unas

cuantas palabras, pero posteriormente deberán de ser detalladas

para resolver preguntas del diseñador o analizar una interfaz

propuesta.

107

Ejemplo de la descripción de tareas:

Para un procesador de textos: “transcribe un memo y enviarlo a la

lista de correo”.

Para una hoja de cálculo: “produce un presupuesto de salario para

el próximo año”.

Para un programa de comunicación “Introducir la clave de entrada

desde de la oficina vía módem”.

Para un sistema de control industrial, ”Entregar el control al

siguiente turno”.

3. Plagiar o copiar.

Esto no significa plagiar en el sentido legal, pero se puede

encontrar y analizar interfaces existentes con las cuales los

usuarios han trabajado y después tomar y construir ideas para

posteriormente utilizarlas en la interfaz. Esto es práctica y

legalmente posible. Este tipo de copia puede ser efectiva para un

nivel alto de paradigma de interacción y para un bajo nivel de

decisiones de control y desplegado.

108

Un paradigma existente puede ser más rápido y fácil de

implementar porque muchas de las decisiones han sido ya

tomadas (p. eje. cortar y pegar trabajará). Esto es muy importante

por que será más fácil y confortable para los usuarios aprenderlo y

usarlo por que ellos ya saben como operan muchas de las

interfaces.

Copiar paradigmas existentes es también efectivo para detalles de

niveles bajos en una interfaz, tales como la colocación de un botón

o los nombres de un menú. Por ejemplo, si se está haciendo la

parte de corrección de ortografía para su aplicación, es

recomendable ver los controles de verificación de ortografía de los

paquetes de procesadores de texto que utilizan las personas que

usarán la aplicación.

3.4.2 Principios para el diseño

Los principios para el diseño: consistencia, retroalimentación minimizar

posibilidades de error, proveer recuperación de errores, acomodar múltiples

niveles de habilidades y minimizar memorización.

109

3.4.3 Consistencia

La consistencia de un aplicación se basa en seguir una uniformidad en las

entradas y salidas del sistema (modelo conceptual, funcionalidad, secuencia,

utilización del hardware etc.). El propósito básico de la consistencia es

permitir al usuario generalizar el conocimiento acerca de uno o varios

aspectos del sistema (p. eje. la forma de cerrar una ventana siempre será la

misma). La consistencia también permite evitar la frustración producida por

el sistema cuando no se comporta de una manera entendible y lógica.

3.4.4 Retroalimentación

La retroalimentación es la información o respuesta que da la computadora a

alguna acción o mandato que se hizo.

Esta es una parte esencial en la conversación entre la computadora y el ser

humano. Muchas veces cuando se tiene una conversación con otra persona

y esta no sonríe, no da un movimiento de cabeza o de algún otra parte del

cuerpo y solamente responde cuando es forzada a hacerlo, puede ser una

pequeña muestra de que no esta entendiendo lo que se le estamos diciendo.

La retroalimentación en una platica entre dos personas puede ser de

diferentes maneras, (ademanes, lenguaje corporal, expresiones faciales, voz

etc.) pero esta se da muchas veces sin darse cuenta la persona que lo está

110

haciendo, a diferencia en una computadora todas las retroalimentaciones

(foco de encendido, posición en la que se encuentra el indicador del mouse

dentro de la pantalla, activación o desactivación de alguna opción del

programa, etc.) deben ser planeadas y programadas.

3.4.5 Minimizar las posibilidades de error.

Proveer al usuario solamente los comandos que son posibles ejecutarse bajo

ciertas circunstancias es una buena manera de prevenir errores, por ejemplo:

No ofrecer opciones de un menú que darán un mensaje como: “selección

ilegal, comando no disponible en este momento”.

No darle la oportunidad de cambiar el formato de la letra si el objeto

seleccionado no es un texto.

No permitir usar el comando “copiar” cuando nada ha sido seleccionado.

111

3.4.6 Diseño de la Interfaz del Sistema

Esta es la pantalla inicial del sistema la cual nos muestra el nombre del

sistema la versión, la fecha y el proceso que se esta ejecutando.

Entre los procesos que se ejecutan tenemos la inicialización de

componentes, la conexión vía ftp hacia el servidor, la captura de los archivos

logs, la lectura, tabulaciòn y almacenamiento de los archivos en la base de

datos de los servicios Squid, Apache, Samba.

Fig. 3.30 Pantalla Inicial

112

Pantalla de culminación de captura de archivos logs de los servicios Squid,

Apache y Samba.

En esta pantalla observamos que la captura de los archivos extraídos termino

satisfactoriamente, por cuanto el usuario (administrador) procederá al ingreso

al sistema analizador de logs.

Fig. 3.31 Pantalla de captura Lista

113

En esta pantalla se procede a ingresar el login del usuario con su respectiva

contraseña para poder comenzar a utilizar el sistema.

En esta pantalla podemos apreciar que existe un nivel de seguridad al

ingreso del sistema analizador de logs.

Fig. 3.32 Pantalla de Login de Usuario

Fig. 3.33 Pantalla de Login Incorrecto

114

En esta pantalla observamos el diseño del menú principal, en el cual

encontramos las diferentes opciones que podemos utilizar en el sistema

analizador de logs.

Fig. 3.34 Pantalla de Menú Principal

115

En esta pantalla observamos la interfaz del servicio seleccionado para ser

analizado por el administrador. El cual nos presenta las opciones para

generar un reporte e imprimirlo y generación de gráficos.

Fig. 3.35 Interfaz de Servicio Squid

116

3.5 Diseño A Nivel de Componentes

Ingreso Programa

Interacción / Interface

Seleccionar Servicios

Tabla Samba Atributos.

Tabla Apache Atributos.

Tabla Squid Atributos.

Samba

Almacenamiento en Base de Datos.

Apache Access Logs.

Squid Access Logs.

Almacenamiento en Base de Datos.

Almacenamiento en Base de Datos.

Squid Apache

Tabular los archivos Logs.

Samba

Captura de archivos Logs.

Ejecutar captura .bat Ftp IP

Captura .TRM Método Get,

Archivos Logs.

Inicio

Almacenar Programa

Visualización Información.

Búsqueda por Fecha.

Búsqueda por Usuario.

Reportes Y Gráficos

Diagrama a Nivel

de Componentes.

Fig. 3.36 Diagrama de Componentes

117

Desarrollo del Diagrama a Nivel de Componentes

Inicio Inicio del proceso de captura de archivos logs.

Captura de archivos logs Preparar el camino de captura para el proceso.

Ejecutar captura.bat Ftp IP Ejecutar archivo de ejecución vía Ftp.

Captura ,TRM / Método Get / Archivos Logs. Capturar mediante archivo.bat / .trm

Tabular los archivos logs. Tabulaciòn de archivos para proceder a almacenarlos en la Base de Datos.

Squid Access Logs. Tabulaciòn y almacenamiento de los archivos Squid.

Almacenamiento en la Base de Datos.

Tabla Squid Atributos.

Apache Access Logs. Tabulaciòn y almacenamiento de los archivos Apache.

Almacenamiento en la Base de Datos.

Tabla Apache Atributos.

Samba Access Logs. Tabulaciòn y almacenamiento de los archivos Samba.

Almacenamiento en la Base de Datos.

Tabla Samba Atributos.

Interacción / Interface Interacción con la interface grafica amigable para el usuario.

Ingreso Programa

Almacenar Programa

Seleccionar Servicios Seleccionar servicio a utilizar para ver los reportes que estos generan tanto en gráficos como reportes escritos, para luego proceder a determinar quien o quienes estuvieron accesando a páginas indebidas o restringidas por la organización. Estos reportes podrán ser visualizados por alguna Fecha especifica o por usuarios del dominio de la empresa.

Squid, Apache, Samba

Visualización de Información.

Búsqueda por Fecha / Usuario

Emisión de Reportes Gráficos

Fin Fin del proceso de captura.

118

CAPÍTULO 4

4 DESARROLLO Y PRUEBAS DEL SISTEMA

4.1 Desarrollo del Sistema

4.1.1 Creación de la Base de Datos

A continuación tenemos el diseño de la base de datos, como fue analizada, y

como van a estar los datos almacenados dentro de la misma.

En primer lugar tenemos que definir el nombre de la base que escogimos

para trabajar en nuestra aplicación, teniendo como referencia varios

productos que existen en el mercado, como son:

Oracle

SQL

MySql

119

Informix

Considerando que estos productos son para aplicaciones que manejan gran

cantidad de información, decidimos utilizar una herramienta que nos permita

realizar y manejar los datos de la misma manera que cualquiera de los

productos antes mencionados, como lo es la herramienta de Microsoft Office

con su manejador de base de datos Access.

Cabe indicar que para nuestra aplicación realizamos varios análisis

referentes a este tema, tomando en consideración características y

beneficios que cada uno de los productos nos brindaban, pero llegamos a la

conclusión de que nuestro sistema si bien es cierto maneja mucha

información, es también cierto que no justificaba utilizar una base de datos

como Oracle, SQL, Informix etc. Sobre todo cuando hablamos de costos

versus beneficios. Es por esto que como ya lo mencionamos anteriormente

decidimos utilizar Microsoft Access, tomando en cuenta requisitos técnicos

necesarios para nuestro sistema y considerando que esta herramienta

cumple con los requisitos necesarios para esta aplicación.

Los datos van ha estar almacenados de la siguiente manera:

Se recomienda tener un PC en ambiente Microsoft para almacenar la base

de datos y utilizarlo como servidor.

Los datos o la información tabulada de los archivos logs se guardaran en la

base debiéndose realizar un respaldo periódicamente.

120

El respaldo lo podemos realizar cada día, semanalmente, mensualmente, o

cada 3 meses, esto depende del administrador del sistema y como se vayan

comportando los datos almacenados, se recomienda realizar el respaldo

diariamente o semanalmente para asegurarnos de futuras perdidas de

información por agentes externos o internos.

La ubicación de los datos dependerá netamente del DBA de la empresa o en

este caso del administrador del sistema, pero se recomienda tener dos

discos duros y en uno de ellos realizar el respaldo, o enviar la información a

otra estación que bien pudiera ser un servidor de almacenamiento de datos

de toda la organización.

El respaldo lo podemos realizar en cds o en algún dispositivo de

almacenamiento externo.

4.1.2 Creación de Componentes

En esta etapa consideramos que era necesario llevar un estándar de

programación dentro de toda la codificación que aquí realizamos, una vez

definido todos aquellos parámetros y directrices que utilizamos durante todo

el programa podemos decir que todo cuanto utilizamos quedo debidamente

detallado y documentado.

121

Las herramientas lógicas y físicas fueron definidas antes de empezar este

proceso por lo cual podemos decir que nosotros utilizamos el siguiente

criterio de codificación / programación de nuestro sistema.

El programa lo dividimos en varios módulos tomando como referencia cada

uno de los diferentes componentes que aquí utilizaríamos, también se tomo

en consideración todos y cada uno de los procesos que debíamos realizar al

momento de la codificación, como son declaración de variables globales y

locales, terminología de métodos y funciones definidas en el sistema, tipos

de variables String, Char, Numeric, Integer, etc.

En lo que respecta a seguridades tomamos en consideración que las

contraseñas deberían ser encriptadas por lo que realizamos una función en

donde recibimos un parámetro y nos devuelve un resultado pero ya

encriptado y este a su vez es almacenado en la base de datos del sistema.

El diseño fundamental, básico e importante de nuestra aplicación fue el

definir a todo el sistema por etapas y por módulos teniendo como resultado

una codificación bastante detallada y estructurada al máximo lo cual conlleva

a la optimización de recursos y del tiempo de respuesta de nuestra

aplicación.

122

4.1.3 Migración de datos

Para la implementación del sistema en una organización se tiene que migrar

información de la empresa a la nueva base de datos, la misma que tiene

tablas con información de los empleados que hacen uso del servicio de

Internet e información adicional de la empresa para que el sistema pueda

implementarse de la mejor forma.

Entre los datos necesarios que hay que migrar a la nueva base de datos

tenemos:

En la tabla ACCESOUSUARIO tenemos que almacenar información de la

persona que va administrar el sistema tal como nombre, apellido, nick,

password, cargo.

En la tabla DEPARTAMENTOS se almacenan todos los departamentos que

existan en la empresa.

En la tabla USUARIO se almacenan el nombre del empleado que tenga

acceso al servicio del Internet, la dirección IP de su computador y el

departamento a cual pertenezca.

En la tabla PÁGINAS se almacenan todas las páginas electrónicas que el

administrador o el jefe del departamento de sistemas consideren que los

usuarios no deberían de acceder.

123

4.1.4 Seguridades

4.1.4.1 Sistema operativo

Se enfocó la herramienta para interactuar con Suse Linux versión 9

ya que es un sistema seguro y nos brinda los servicios de Proxy,

Web server entre otros.

4.1.4.2 Del Sistema

El sistema maneja varios tipos de seguridades como por ejemplo al

crear un usuario para administrar la herramienta la contraseña se

almacena de forma encriptada en la base de datos. Esto hace que

si alguien pudiera ingresar a la base de datos y quisiera ver la

contraseña no lo lograría.

4.2 Prueba del Sistema

Se dice que el software es sólo un elemento de un sistema mayor basado en

computadora. Finalmente el software es incorporado a otros elementos del

sistema como el hardware, la información y se realizan una serie de pruebas

de integración del sistema y de validación.

Estas pruebas caen fuera del ámbito del proceso de ingeniería del software

y no las realiza únicamente el desarrollador del software. Sin embargo, los

124

pasos dados durante el proceso de pruebas pueden mejorar enormemente la

probabilidad de éxito en la integración del software en el sistema.

4.2.1 Tipos de Pruebas del Sistema

La prueba del sistema, realmente está constituida por una serie de

pruebas diferentes cuyo propósito primordial es ejercitar profundamente

el sistema basado en computadora.

Aunque cada prueba tiene un propósito diferente, todas trabajan para

verificar que se han integrado adecuadamente todos los elementos del

sistema y que realizan las funciones apropiadas. Entre los diferentes

tipos de pruebas tenemos:

Prueba de recuperación, prueba de seguridad, prueba de resistencia,

prueba de rendimiento.

Para |efectos de pruebas de este sistema hemos seleccionado la

Prueba de Resistencia.

Este sistema tiene que analizar cierta cantidad de información que

contiene los archivos logs de los servicios mencionados.

Nosotros hemos tomado archivos muy grandes, es decir con demasiada

información, algo que en teoría no debería de suceder y el sistema a

trabajado de igual forma, por supuesto que el tiempo de respuesta es

mayor pero sin ningún tipo de error.

125

4.2.2 Calidad del sistema

Hemos tratado de medir la calidad del sistema realizando la Prueba de

Resistencia y la Prueba de Rendimiento.

El sistema ha pasado ambas pruebas ya que se ha probado su

funcionalidad con grandes cantidades de información para la prueba

de resistencia y se ha revisado la ejecución de cada proceso y módulo

en la prueba de rendimiento.

126

CAPÍTULO 5

5.- IMPLEMENTACIÓN DEL SISTEMA

5.1 Introducción

Para realizar la implementación del sistemas debemos tener una

organización la cual maneje un servidor con Suse Linux 9, el mismo que

tenga los servicios de Squid para el uso de Internet, Apache para la pagina

Web de la empresa y Samba para el uso de los recursos compartidos de la

red.

El servidor debe tener activado el servicio de FTP para que desde el

computador del administrador de la red se pueda capturar los archivos logs

de los servicios antes mencionados.

Las estaciones de trabajo deben tener ambiente Microsoft.

127

Debemos de instalar el sistema en el computador del administrador de la red,

ingresar en la opción de mantenimiento todos los usuarios de la organización

con sus respectivas direcciones IP y el departamento al cual pertenecen.

Ingresar las páginas que los usuarios no pueden navegar al hacer uso del

Internet.

5.2 Elementos Físicos

Los elementos físicos necesarios para la implementación del sistema

básicamente son el servidor, las estaciones de trabajo, y recursos como

impresoras.

Estos elementos son necesarios para la correcta operación y ejecución de la

aplicación, podemos considerar tener un servidor con plataforma Suse Linux

9 con características generales como un disco duro de 60 GB, 1 procesador

Intel de 2.0 GHZ o mayor, 256 MB de memoria Ram o mayor, teclado,

Mouse, monitor, etc. En este se almacenaran todos los logs que se generen

producto de la navegación que realicen los diferentes usuarios del dominio

con que cuenta la organización.

Como ya lo habíamos dicho anteriormente todos estos archivos logs van a

ser capturados y analizados para luego almacenarlos en una base de datos

que estará en un PC con ambiente Windows (Microsoft), se recomienda que

esta computadora tenga las siguientes características: Disco duro de 60 GB

128

o mayor, Procesador Intel 2.0 GHZ o mayor, memorias Ram de 512 MB o

mayor, teclado, Mouse, monitor, SO Windows XP, 2000 Professional o 98.

5.3 Elementos de Software

Los elementos de software necesarios para implementar el sistema son Suse

Linux 9 para el servidor con los servicios Squid, Apache y Samba instalados,

activado el FTP en el servidor, ambiente Microsoft en las estaciones de

trabajo, la base de datos.

Estos elementos algunos son gratuitos otros debemos de pagar un valor

significativo como es el caso de las licencias del office en lo que respecta a la

PC con ambiente Microsoft, en cuanto al ambiente de unix la gran mayoría

de las herramientas son Free, lo que quiere decir que son gratuitas y no

tenemos que pagar ningún costo por ellas.

5.4 Elementos Humanos

Los elementos humanos necesario para la implementación del sistema

tenemos al administrador de la red que es la persona que va a manejar la

herramienta, los usuarios de la organización que son los que van a generar la

información para analizarla, los desarrolladores del sistema que son las

129

personas que van a instalar la herramienta en el computador del

administrador, van a capacitar para el uso de la misma y a dar el soporte

preventivo y correctivo, y a realizar alguna actualización si la amerita.

Tenemos tres tipos de usuarios:

Los empleados de la organización que hacen uso del servicio de Internet y

de los recursos compartidos de la red.

Estos usuarios no interactúan directamente con la herramienta, pero sus

datos son ingresados en el sistema, además estos usuarios son los que

generan la información para que luego se analice en la herramienta.

El administrador de la red es el usuario que interactúa directamente con el

sistema, es el emite los gráficos y reportes.

El jefe del departamento que es la persona que analiza todos los reportes y

gráficos que emite el sistema para luego tomar alguna decisión.

130

5.5 Infraestructura

Debe existir una infraestructura a nivel de red ya que las estaciones de

trabajo, el computador del administrador y el servidor deben estar

interconectados.

5.6 Capacitación de los Usuarios

Los desarrolladores brindaremos la capacitación necesaria a los usuarios

para la correcta utilización e implementación correcta del sistema, para lo

cual utilizaremos presentaciones realizadas en power point para la

explicación necesaria antes de comenzar a utilizar la aplicación.

Estaremos capacitando a todo el personal que utilizara el software durante

una semana 2 horas al día.

Obsequiaremos manuales de consulta en folletos como en medios

magnéticos.

Tendremos la página Web de la empresa las 24 horas del día durante los

365 días del año en donde estará el documento de ayuda de la aplicación y

un demo de cómo actúa el sistema claro todo aquel usuario que acceda a la

pagina tendrá que ingresar el login y el password sobre todo si necesita

realizar alguna consulta referente a SISLOG.

131

CAPITULO 6

6.- RECOMENDACIONES Y CONCLUSIONES DE LA

TESIS

6.1 Recomendaciones

6.1.1 Hardware

se recomienda las siguientes características del PC por cuanto

necesitaremos el mayor rendimiento del sistema a instalar y no

encontrarnos con futuros inconvenientes por falta de hardware por

parte de la computadora.

132

1 COMPUTADORA PENTIUM III 1.1 GHZ o MAYOR

TARJETA DE RED 10/100 Mbps

256 MB DE MEMORIA RAM o MAYOR

UNIDAD CD-RW

1 IMPRESORA LX-300 +

SI LA EMPRESA TIENE UNA RED ESTABLECIDA

PODEMOS UTILIZAR EL HUB O SWICHT QUE TENGA

ESTA PARA TRANSMITIR LA INFORMACIÓN.

6.1.2 Software

PLATAFORMA WINDOWS 98 EN ADELANTE PARA LA PC

DEL ADMINISTRADOR SE RECOMIENDA QUE SE

INSTALE UN SISTEMA OPERATIVO ACTUAL PARA UN

MEJOR Y CORRECTO FUNCIONAMIENTO DEL

SISTEMA.

MICROSOFT VISUAL BASIC 6.0

HERRAMIENTAS DE MICROSOFT CON EL PRODUCTO

OFFICE EN DONDE CONTENGA EL MANEJAR DE BASE

DE DATOS ACCESS

SUSE LINUX 9

133

6.1.3 Cableado

CABLE CRUZADO UTP CAT 5E UTILIZANDO LA NORMA

568 B, EL CUAL SERÁ UTILIZADO PARA LAS PRUEBAS

NECESARIAS DEL SISTEMA.

6.1.4 Seguridades

La maneja el administrador al momento de ingresar al sistema ya que

la información que se maneja no es crítica para la empresa.

134

6.2 Conclusión

Este proyecto ha sido desarrollado para satisfacer las necesidades de varias

empresas u organizaciones publicas o privadas que necesitan optimizar la

utilización de uno de los recursos mas importantes en este siglo como lo es

el de Internet, por parte del recurso humano que hace uso del mismo,

mediante un control pormenorizado de los accesos a los sitios Web.

Habiendo recabado información importante referente a esta problemática que

viven a diario las instituciones que cuentan con este recurso, nosotros hemos

diseñado he implementado una herramienta que nos ayudara a mejorar el

rendimiento de los usuarios con una correcta utilización de los recursos de

Internet, cabe indicar que esta aplicación no solo mide el comportamiento de

los usuarios en Internet, además de esta utilidad posee la propiedad de medir

en que momento existe mas utilización de las recursos compartidos en la red

de la organización.

Nuestra aplicación también nos ofrece un reporte de los recursos

compartidos en la red de la empresa, tanto de manera gráfica como

información de texto con el objeto de lograr una mayor eficiencia en el uso de

dichos dispositivos.

ÍNDICE GENERAL

1 TRANSFERENCIA DE ARCHIVOS E INGRESO AL SISTEMA 1

1.1 Inicializando Componentes 1

1.2 Componentes Inicializados 2

1.3 Extrayendo Archivos de Apache 3

1.4 Extrayendo Archivos Squid 4

1.5 Extrayendo Archivos Samba 5

1.6 Archivos Cargados y Almacenados 6

1.7 Login de Usuario 7

1.8 Usuario Incorrecto 8

1.9 Mensaje de Usuario Incorrecto 8

1.10 Contraseña de Usuario 9

1.11 Contraseña Incorrecta 9

2 OPCIONES DEL MENÙ PRINCIPAL DE S.I.S.L.O.G. 10

2.1 Menú Principal 10

2.2 Servicios 11

2.3 Mantenimiento 12

2.4 Ayuda 13

3 FUNCIONALIDAD DEL SISTEMA 14

3.1 Servicio Squid 14

3.2 Servicio Squid por Usuario, por Fecha o Todos 15

3.3 Servicio Squid por Usuario 16

3.4 Servicio Squid por Fecha 18

3.5 Servicio Squid opción Todos 19

3.6 Servicio Squid Reporte 20

3.7 Servicio Squid Impresión 21

3.8 Servicio Squid Gráfico 22

3.9 Servicio Apache 24

3.10 Servicio Apache por Usuario, por Fecha o Todos 25

3.11 Servicio Apache por Usuario 26

3.12 Servicio Apache por Fecha 28

3.13 Servicio Apache opción Todos 29

3.14 Servicio Apache Reporte 30

3.15 Servicio Apache Impresión 31

3.16 Servicio Apache Gráfico 32

3.17 Mantenimiento de Usuarios del Dominio del Sistema 34

3.18 Pantalla de Ingreso de usuarios nuevos de dominio del sistema 35

3.19 Mensaje de error en Ingreso de usuarios nuevos del dominio 36

3.20 Mensaje de error en IP de Ingreso de usuarios nuevos del dominio 37

3.21 Pantalla de modificación de usuarios de dominio del sistema 39

3.22 Pantalla de eliminación de usuarios de dominio del sistema 40

3.23 Páginas no permitidas 41

3.24 Modificación de páginas no permitidas 42

3.25 Eliminación de páginas no permitidas 43

3.26 Mantenimiento de Departamentos 44

3.27 Agregar Departamento 45

3.28 Error en Ingreso de Departamento 46

3.29 Modificación de Departamento 47

3.30 Eliminación de Departamento 48

MANUAL TÉCNICO DEL USUARIO 49

DICCIONARIO DE DATOS 130

ÍNDICE DE FIGURAS

Fig. 1.1 Inicializando Componentes. 1

Fig. 1.2 Componentes Inicializados. 2

Fig. 1.3 Pantalla de Captura de Apache. 3

Fig. 1.4 Pantalla de Captura de Squid. 4

Fig. 1.5 Pantalla de Captura de Samba. 5

Fig. 1.6 Pantalla de Archivos Capturados. 6

Fig. 1.7 Pantalla de Archivos Capturados. 7

Fig. 1.8 Pantalla de Login de Usuario. 7

Fig. 1.9 Pantalla de Usuario Incorrecto. 8

Fig. 1.10 Pantalla de Usuario de mensaje Incorrecto. 8

Fig. 1.11 Pantalla de contraseña de login. 9

Fig. 1.12 Pantalla de mensaje de contraseña Incorrecta. 9

Fig. 2.1 Pantalla de Menú Principal. 10

Fig. 2.2 Pantalla del Menú Servicios. 11

Fig. 2.3 Pantalla del Menú Mantenimiento. 12

Fig. 2.4 Pantalla del Menú Ayuda. 13

Fig. 3.1 Pantalla del Servicio Squid. 14

Fig. 3.2 Pantalla de Opciones del Servicio Squid. 15

Fig. 3.3 Pantalla de Squid por Departamentos. 16

Fig. 3.4 Pantalla de Squid por Usuarios. 17

Fig. 3.5 Pantalla de Squid por Fecha. 18

Fig. 3.6 Pantalla de Squid por Todos. 19

Fig. 3.7 Pantalla de Reporte de Squid. 20

Fig. 3.8 Pantalla de Impresión de Squid. 21

Fig. 3.9 Pantalla de Reporte de grafico de Accesos no Permitidos de Squid 22

Fig. 3.10 Pantalla de Reporte de grafico de Accesos no Permitidos de Squid 23

Fig. 3.11 Pantalla del Servicio Apache. 24

Fig. 3.12 Pantalla de Opciones del Servicio 25

Fig. 3.13 Pantalla de Apache por Departamentos. 26

Fig. 3.14 Pantalla de Apache por Usuarios. 27

Fig. 3.15 Pantalla de Apache por Usuarios. 27

Fig. 3.16 Pantalla de Apache por Fecha. 28

Fig. 3.17 Pantalla de Apache por Todos. 29

Fig. 3.18 Pantalla de Reporte de Apache. 30

Fig. 3.19 Pantalla de Impresión de Apache. 31

Fig. 3.20 Pantalla de Reporte de grafico de conexiones de Apache. 32

Fig. 3.21 Pantalla de Reporte de grafico de conexiones de Apache. 33

Fig. 3.22 Pantalla de Mantenimiento de Usuarios del Dominio. 34

Fig. 3.23 Pantalla de Ingreso de Usuarios del dominio. 35

Fig. 3.24 Pantalla de error por campos vacíos. 36

Fig. 3.25 Pantalla de error en IP en usuarios del dominio. 37

Fig. 3.26 Pantalla lista de Ingreso de Usuarios del dominio. 38

Fig. 3.27Pantalla de modificación de usuarios del dominio. 39

Fig. 3.28 Pantalla de eliminación de usuarios del dominio. 40

Fig. 3.29 Mantenimiento de páginas no permitidas. 41

Fig. 3.30 Modificación de páginas no permitidas. 42

Fig. 3.31 Eliminación de páginas no permitidas. 43

Fig. 3.32 Mantenimiento de Departamento. 44

Fig. 3.33 Pantalla para agregar departamento. 45

Fig. 3.34 Error en ingreso de departamento. 46

Fig. 3.35 Pantalla de Modificación de Departamento. 47

Fig. 3.36 Pantalla de Eliminación de Departamento. 48

1

Fig. 1.1 Inicializando Componentes.

MANUAL DEL USUARIO

1.- TRANSFERENCIA DE ARCHIVOS E INGRESO AL SISTEMA

1.1 Inicializando Componentes

En esta pantalla observamos como los componentes necesarios para la

transferencia de archivos logs están siendo cargados para proceder a

inicializarlos para dar paso a la siguiente etapa de la transferencia.

2

Fig. 1.2 Componentes Inicializados.

1.2 Componentes Inicializados

Luego de haber pasado por la etapa de inicialización de componentes

observamos en esta pantalla como todos los componentes necesarios para

la transferencia de archivos han sido totalmente inicializados con lo cual se

procede a la transferencia de los servicios Squid, Apache, Samba.

3

Fig. 1.3 Pantalla de Captura de Apache.

1.3 Extrayendo archivos de Apache

En esta pantalla podemos observar como están siendo transferidos los

archivos logs del servicio apache, una vez capturados estos archivos se

procederán a tabular para luego ser almacenados en la base de datos y

permitir su análisis posteriormente.

4

Fig. 1.4 Pantalla de Captura de Squid.

1.4 Extrayendo Archivos Squid

En esta pantalla podemos observar como están siendo transferidos los

archivos logs del servicio squid, una vez capturados estos archivos se

procederán a tabular para luego ser almacenados en la base de datos y

permitir su análisis posteriormente.

5

Fig. 1.5 Pantalla de Captura de Samba.

1.5 Extrayendo Archivos Samba

En esta pantalla podemos observar como están siendo transferidos los

archivos logs del servicio samba, una vez capturados estos archivos se

procederán a tabular para luego ser almacenados en la base de datos y

permitir su análisis posteriormente.

6

Fig. 1.6 Pantalla de Archivos Capturados.

1.6 Archivos Cargados y Almacenados

Luego de haber realizado todo el proceso de transferencia de archivos logs,

tabulados y enviados a la base de datos el sistema quedara listo para ser

utilizado por el administrador, por cuanto aparecerá la pantalla de ingreso o

de salir en el caso de no querer ingresar en ese momento como se muestra

en la Fig. 1.6 y Fig. 1.7

7

Fig. 1.7 Pantalla de Archivos Capturados.

Fig. 1.8 Pantalla de Login de Usuario.

1.7 Login de Usuario

En esta pantalla procedemos a ingresar el Nick (Nombre de usuario) del

usuario ya sea este administrador, operador de sistemas o del gerente de

sistemas, de la misma manera ingresamos sus respectivas contraseñas para

cada uno de los usuarios que tienen acceso al sistema.

8

Fig. 1.9 Pantalla de Usuario Incorrecto.

Fig. 1.10 Pantalla de Usuario de mensaje Incorrecto.

1.8 Usuario Incorrecto

En esta ventana observamos como procedemos a ingresar un usuario y el

botón de aceptar se activa inmediatamente, cabe decir que si el usuario no

ingresa absolutamente nada le aparecerá un mensaje de error pidiéndole que

ingrese un nombre correcto.

1.9 Mensaje de Usuario Incorrecto

En esta pantalla observamos como aparecerá un mensaje de error

diciéndonos que el usuario no existe por cuanto debemos de ingresar uno

que tenga acceso al sistema.

9

Fig. 1.12 Pantalla de mensaje de contraseña Incorrecta.

Fig. 1.11 Pantalla de contraseña de login.

1.10 Contraseña de Usuario

En esta pantalla observamos como estamos ingresando la contraseña del

usuario para proceder a presionar el botón aceptar para ingresar a utilizar el

sistema.

1.11 Contraseña Incorrecta

En esta pantalla observamos que se emite un mensaje de error diciéndonos

que la contraseña que ingresamos no es valida, por cuanto es necesario que

ingresemos una contraseña de un usuario con una contraseña valida para

utilizar el sistema.

10

Fig. 2.1 Pantalla de Menú Principal.

2.- OPCIONES DEL MENÚ PRINCIPAL DE S.I.S.L.O.G.

2.1 Menú Principal

Una vez que hemos pasado de la etapa de captura y de ingreso al sistema

nos encontramos con la pantalla del menú principal la cual nos dará las

opciones con que cuenta nuestro sistema analizador de logs.

11

Fig. 2.2 Pantalla del Menú Servicios.

2.2 Servicios

Luego de haber ingresado al menú principal podemos ver la primera ventana

que se nos despliega que la cual nos indica los diferentes servicios que

podemos utilizar ya sea el servicio Squid, Apache, Samba y salir.

12

Fig. 2.3 Pantalla del Menú Mantenimiento.

2.3 Mantenimiento

Si seguimos viendo la utilidad del sistema nos damos cuenta a un lado de la

ventana de servicios que nos aparece la siguiente ventana la cual al

desplegarla nos indica las diferentes opciones de este menú como son,

usuarios registrados, paginas no permitidas, login de usuarios,

departamentos.

13

Fig. 2.4 Pantalla del Menú Ayuda.

2.4 Ayuda

En este menú aparece la ventana de ayuda la cual nos dará información

relevante referente al sistema y a la forma como se debe utilizar el mismo.

14

Fig. 3.1 Pantalla del Servicio Squid.

3.- FUNCIONALIDAD DEL SISTEMA.

3.1 Servicio Squid

Esta es la pantalla principal del servicio squid en la cual observamos las

diferentes opciones que nos da este servicio y la información que podemos

manejar, la cual podemos analizar mediante una serie de reportes impresos

o reportes gráficos.

15

Fig. 3.2 Pantalla de Opciones del Servicio Squid.

3.2 Servicio Squid por Usuario, por Fecha o Todos.

En esta pantalla podemos escoger las opciones de reporte por usuarios, por

fecha o por departamento para proceder a realizar el mismo.

16

Fig. 3.3 Pantalla de Squid por Departamentos.

3.3 Servicio Squid por Usuario

En esta pantalla podemos escoger como queremos que se vea nuestro

reporte, al hacer clic en el menú por usuario nos saldrá la opción de escoger

el departamento deseado (Fig. 3.3) y dentro de esta los usuarios de dicha

área, como se muestra en la Fig. 3.4

17

Fig. 3.4 Pantalla de Squid por Usuarios.

18

Fig. 3.5 Pantalla de Squid por Fecha.

3.4 Servicio Squid por Fecha

Al escoger la opción por fecha automáticamente saldrá un calendario en el

cual seleccionamos la fecha deseada para poder emitir el reporte.

19

Fig. 3.6 Pantalla de Squid por Todos.

3.5 Servicio Squid opción Todos

Al momento de seleccionar esta opción nuestro reporte presentara todos los

usuarios de todos los departamentos.

20

Fig. 3.7 Pantalla de Reporte de Squid.

3.6 Servicio Squid Reporte

Podemos observar que al momento de escoger cualquiera de las opciones

mencionadas anteriormente en este servicio y al hacer clic en el botón de

reporte, automáticamente se presentará un informe tipo texto tal como se

muestra en el gráfico.

21

Fig. 3.8 Pantalla de Impresión de Squid.

3.7 Servicio Squid Impresión

Una vez emitido el informe del reporte seleccionado el sistema trae la opción

de imprimir el mismo.

22

Fig. 3.9 Pantalla de Reporte de grafico de Accesos no Permitidos de Squid

3.8 Servicio Squid Gráfico

Con la información del informe que se ha emitido y al hacer clic en el botón

de gráfico, automáticamente este presenta uno de accesos no permitidos por

usuarios del departamento de sistemas (Fig. 3.9) o Contabilidad (Fig. 3.10),

esta opción varía de acuerdo a los departamentos creados en mi empresa.

23

Fig. 3.10 Pantalla de Reporte de grafico de Accesos no Permitidos de Squid

24

Fig. 3.11 Pantalla del Servicio Apache.

3.9 Servicio Apache

Esta es la pantalla principal del servicio Apache en la cual observamos las

diferentes opciones que nos da este servicio y la información que podemos

manejar, la cual podemos analizar mediante una serie de reportes impresos

o reportes gráficos.

25

Fig. 3.12 Pantalla de Opciones del Servicio Apache.

3.10 Servicio Apache por Usuario, por Fecha o Todos.

En esta pantalla podemos escoger las opciones de reporte por usuarios, por

fecha o por departamento, y escoger las diferentes alternativas que nos

presenta el servicio Apache.

26

Fig. 3.13 Pantalla de Apache por Departamentos.

3.11 Servicio Apache por Usuario

En esta pantalla podemos escoger como queremos que se vea nuestro

reporte, al hacer clic en el menú por usuario nos saldrá la opción de escoger

el departamento deseado (Fig. 3.13) y dentro de esta los usuarios de dicha

área, como se muestra en la Fig. 3.14 y Fig. 3.15.

27

Fig. 3.14 Pantalla de Apache por Usuarios.

Fig. 3.15 Pantalla de Apache por Usuarios.

28

Fig. 3.16 Pantalla de Apache por Fecha.

3.12 Servicio Apache por Fecha

Al escoger la opción por fecha automáticamente saldrá un calendario en el

cual seleccionamos la fecha deseada para poder emitir el reporte.

29

Fig. 3.17 Pantalla de Apache por Todos.

3.13 Servicio Apache opción Todos

Al momento de seleccionar esta opción nuestro reporte presentara todos los

usuarios de todos los departamentos.

30

Fig. 3.18 Pantalla de Reporte de Apache.

3.14 Servicio Apache Reporte

Podemos observar que al momento de escoger cualquiera de las opciones

mencionadas anteriormente en este servicio y al hacer clic en el botón de

reporte, automáticamente se presentará un informe tipo texto tal como se

muestra en el gráfico.

31

Fig. 3.19 Pantalla de Impresión de Apache.

3.15 Servicio Apache Impresión

Una vez emitido el informe del reporte seleccionado el sistema trae la opción

de imprimir este reporte.

32

Fig. 3.20 Pantalla de Reporte de grafico de conexiones de Apache.

3.16 Servicio Apache Gráfico

Con la información del informe que se ha emitido y al hacer clic en el botón

de gráfico, automáticamente este presenta uno de acceso a página Web por

horas de todos los usuarios (Fig. 3.21) o por cada uno de los usuarios (Fig.

3.20).

33

Fig. 3.21 Pantalla de Reporte de grafico de conexiones de Apache.

34

Fig. 3.22 Pantalla de Mantenimiento de Usuarios del Dominio.

3.17 Mantenimiento de Usuarios del Dominio del Sistema

En esta interface podemos agregar, eliminar o modificar los usuarios del

dominio de los cuales vamos a extraer la información producto de la captura

de los logs en el servidor Linux que estos generaron cuando realizaron algún

proceso con la red de la organización.

35

Fig. 3.23 Pantalla de Ingreso de Usuarios del dominio.

3.18 Pantalla de Ingreso de usuarios nuevos de dominio del sistema

Esta interface nos permitirá ingresar un usuario nuevo del dominio del

sistema el cual será almacenado en la base de datos.

36

Fig. 3.24 Pantalla de error por campos vacíos.

3.19 Mensaje de error en Ingreso de usuarios nuevos del dominio

En esta interface nos damos cuenta como se nos muestra un mensaje de

error al querer grabar información en blanco, cabe indicar que el sistema le

permitirá guardar siempre y cuando los campos hayan sido llenados en su

totalidad.

37

Fig. 3.25 Pantalla de error en IP en usuarios del dominio.

3.20 Mensaje de error en IP de Ingreso de usuarios nuevos del dominio

De igual manera al nosotros querer introducir una dirección IP no valida el

sistema automáticamente emitirá un mensaje de error en donde nos dice que

la IP no es valida, por cuanto debe ingresar una IP correcta.

Una vez ingresado todos los campos correctamente podemos proceder a

guardar la información tal como se muestra en la Fig. 3.26.

38

Fig. 3.26 Pantalla lista de Ingreso de Usuarios del dominio.

39

Fig. 3.27Pantalla de modificación de usuarios del dominio.

3.21 Pantalla de modificación de usuarios de dominio del sistema

Aquí en esta interface observamos como podemos modificar un usuario en el

caso de requerir hacer esta funcionalidad procedemos a cambiar la

información que sea necesaria y luego la almacenares presionando una vez

mas el botón agregar.

40

Fig. 3.28 Pantalla de eliminación de usuarios del dominio.

3.22 Pantalla de eliminación de usuarios de dominio del sistema

Aquí en esta interface observamos como podemos eliminar un usuario en el

caso de requerir hacer esta funcionalidad procedemos a posicionarnos en el

campo que deseamos eliminar, presionamos el botón y nos emitirá un

mensaje en el cual se muestra la confirmación de que si queremos eliminar

realmente este usuario.

41

Fig. 3.29 Mantenimiento de páginas no permitidas.

3.23 Paginas no permitidas

Otra funcionalidad que encontramos en nuestro sistema es la opción de

ingresar las páginas que la organización tenga definidas como no permitidas

para de esta forma definir que usuarios se están conectando a dichas

páginas.

42

Fig. 3.30 Modificación de páginas no permitidas.

3.24 Modificación de páginas no permitidas.

En esta interface podemos realizar modificaciones a las paginas que

anteriormente ingresamos como no permitidas e incluso podemos verificar si

existe dicha pagina presionando en el Icono del explorador de Internet que se

presenta en esta pantalla.

43

Fig. 3.31 Eliminación de páginas no permitidas.

3.25 Eliminación de páginas no permitidas.

Aquí nos podemos dar cuenta de cómo podemos eliminar una pagina no

permitida, esta interface nos emitirá un mensaje de confirmación de que si

estamos seguros de eliminar dicha pagina.

44

Fig. 3.32 Mantenimiento de Departamento.

3.26 Mantenimiento de Departamento.

Nuestro sistema tiene la posibilidad de tener los usuarios divididos por

departamentos tal como se nos muestra en la Fig. 3.32, la cual nos da la

posibilidad de crear, modificar o eliminar departamentos para luego ingresar

usuarios los cuales van ha estar registrados en cualquiera de los

departamentos que nosotros definimos anteriormente.

45

Fig. 3.33 Pantalla para agregar departamento.

3.27 Agregar Departamento.

Tal como lo habíamos definido en el punto 3.26 el sistema nos da la

posibilidad de crear nuevos departamentos como podemos observar en la

Fig. 3.33, esto es muy necesario para una empresa para en ocasiones poder

medir en rendimiento laboral por departamentos dentro de una organización.

46

Fig. 3.34 Error en ingreso de departamento.

3.28 Error en Ingreso de Departamento.

Si nosotros quisiéramos guardar información en blanco referente a la

creación de nuevos departamentos el sistema emitirá un mensaje de error en

el cual nos informara que no se puede almacenar información en blanco por

lo cual debemos ingresar información o de lo contrario seguirá emitiéndose el

mensaje anteriormente mencionado.

47

Fig. 3.35 Pantalla de Modificación de Departamento.

3.29 Modificación de Departamento.

Nuestro sistema nos permite modificar algún departamento en el caso de

necesitar hacerlo, con ello podemos cambiar un grupo de usuarios

asignándole un nuevo departamento o en su defecto al departamento

modificado asignarle nuevos usuarios.

48

Fig. 3.36 Pantalla de Eliminación de Departamento.

3.30 Eliminación de Departamento.

Si el administrador deseara eliminar algún departamento por alguna razón, el

sistema esta en la capacidad de hacerlo por cuanto debe posicionarse en el

campo que desea eliminar y proceder a presionar el botón eliminar,

enseguida le aparecerá un botón que le emitirá el mensaje de confirmación

de eliminación.

49

MANUAL TÉCNICO DEL USUARIO

Forma Analiza

Dim lineaApache As String

Dim apache As Long

Dim fin As Long

Dim linea As String

Dim fila As Long

Dim inicio As Long

Dim ip, fecha, hora, metodo, archivo, direccion, informacion As String

Private Sub Iniciar()

lblMensaje.Caption = "Inicializando componentes..."

resultado = Shell(App.Path + "\captura.bat", vbMinimizedNoFocus)

If resultado = 0 Then

lblMensaje.Caption = "Error al obtener los logs."

Else

lblMensaje.Caption = "Componentes Inicializados."

For i = 0 To 500 Step 5

Select Case i

Case 100

Case 150

50

lblMensaje.Caption = "Extrayendo archivos de Apache.."

Case 200

lblMensaje.Caption = "Leyendo archivos de Apache..."

Call CargarApache

Case 250

lblMensaje.Caption = "Archivos leídos."

Case 300

lblMensaje.Caption = "Extrayendo archivos de Squid.."

Case 350

lblMensaje.Caption = "Leyendo archivos de Squid..."

Call CargarSquid

Case 400

lblMensaje.Caption = "Archivos leídos."

Case 450

lblMensaje.Caption = "Guardando en base de datos..."

End Select

barra.Value = i + 1

Call Pausa

Next i

End If

Rem lblMensaje.Caption = "Listo..."

lblMensaje.Caption = " "

51

lbl_listo.Visible = True

cmdIngresar.Visible = True

cmdSalir.Visible = True

lblMensaje.Alignment = 2

barra.Visible = False

ShockwaveFlash1.Visible = Falseç

End Sub

Private Sub cmdIngresar_Click()

Unload Me

frmLogin.Show

End Sub

Private Sub cmdSalir_Click()

Unload Me

End Sub

Private Sub Form_Activate()

Call Iniciar

End Sub

Private Sub Form_Load()

Call AbrirBase

dia = Day(Date)

mes = Month(Date)

año = Year(Date)

52

MSK_FECHA.Text = dia & "/" & mes & "/" & año

End Sub

Private Sub Pausa()

Dim controlar

Dim comenzar

comenzar = Timer

Do Until controlar >= comenzar + 0.2

controlar = Timer

DoEvents

Loop

End Sub

Private Sub CargarApache()

archivo = App.Path + "\access_log"

Open archivo For Input As #1

Line Input #1, lineaApache

Call LlenarApache(lineaApache)

End Sub

Private Sub CargarSquid()

archivo = App.Path + "\access.log"

Open archivo For Input As #2

Line Input #2, lineaSquid

Call LlenarSquid(lineaSquid)

53

End Sub

Private Sub CargarSamba()

archivo = App.Path + "\log.smbd"

Open archivo For Input As #3

Line Input #3, lineaSamba

Call LlenarSamba(lineaSamba)

End Sub

Public Sub LlenarApache(lineaApache)

inicio = 1

fila = 1

linea = lineaApache

While (ExtraerLineaApache)

fila = fila + 1

Wend

End Sub

Function ExtraerLineaApache()

fin = InStr(inicio, linea, Chr(10))

If Not (fin = -1 Or fin = 0) Then

lineaTab = Mid(linea, inicio, fin - inicio + 1)

inicio = fin + 1

LineaAccesoApache (lineaTab)

ExtraerLineaApache = True

54

Else

ExtraerLineaApache = False

End If

End Function

Public Sub LineaAccesoApache(tab_ln As String)

fin_ln = InStr(1, tab_ln, "-") - 1

ip = Mid(tab_ln, 1, fin_ln)

ini = InStr(fin_ln, tab_ln, "[") + 1

fin_ln = InStr(fin_ln, tab_ln, ":")

fecha = ConvertirMes(Mid(tab_ln, ini, fin_ln - ini))

ini = fin_ln + 1

fin_ln = InStr(fin_ln, tab_ln, "-") - 1

hora = Mid(tab_ln, ini, fin_ln - ini)

ini = fin_ln + 2

fin_ln = InStr(fin_ln, tab_ln, "]")

ini = fin_ln + 3

fin_ln = InStr(ini, tab_ln, " ")

metodo = Mid(tab_ln, ini, fin_ln - ini)

ini = fin_ln + 1

fin_ln = InStr(ini, tab_ln, "HTTP")

archivo = Mid(tab_ln, ini, fin_ln - ini)

ini = fin_ln

55

fin_ln = InStr(ini, tab_ln, " ") - 1

ini = fin_ln + 1

Call GuardarApache

End Sub

Public Sub GuardarApache()

Set Registros = Nothing

datos = "INSERT INTO apache VALUES('" & Trim(ip) & "','" &

Format(fecha, "dd/mm/yyyy") & _

"','" & Format(hora, "hh:mm:ss") & "', '" & Trim(metodo) & "', '" &

Trim(archivo) & "')"

Registros.Open datos, Conexion

End Sub

Public Sub LlenarSquid(lineaSquid)

inicio = 1

fin = 1

fila = 1

linea = lineaSquid

While (ExtraerLineaSquid)

fila = fila + 1

Wend

End Sub

Function ExtraerLineaSquid()

56

fin = InStr(inicio, linea, Chr(10)) - 1

If Not fin = -1 Then

lineaTab = Mid(linea, inicio, fin - inicio + 1)

inicio = fin + 2

LineaAccesoSquid (lineaTab)

ExtraerLineaSquid = True

Else

ExtraerLineaSquid = False

End If

End Function

Public Sub LineaAccesoSquid(tab_ln As String)

fin_ln = 1

ini = 1

fin_ln = InStr(fin_ln, tab_ln, " ") + 1

fin_ln = InStr(fin_ln, tab_ln, " ") + 1

ini = 22

fin_ln = InStr(ini + 1, tab_ln, " ", vbTextCompare)

ip = Mid(tab_ln, ini, fin_ln - ini)

dia = Day(Now) - 1

mes = Month(Date)

año = Year(Date)

57

fecha = Trim(Str(dia)) + "/" + Trim(Str(mes)) + "/" + Trim(Str(año))

fin_ln = InStr(fin_ln, tab_ln, " ") + 1

fin_ln = InStr(fin_ln, tab_ln, " ") + 1

ini = InStr(fin_ln, tab_ln, " ") + 1

fin_ln = InStr(ini, tab_ln, " ")

metodo = Mid(tab_ln, ini, fin_ln - ini)

ini = fin_ln + 1

fin_ln = InStr(ini, tab_ln, " ")

direccion = Mid(tab_ln, ini, fin_ln - ini)

Call GuardarSquid

End Sub

Public Sub GuardarSquid()

Set Registros = Nothing

datos = "INSERT INTO squid VALUES('" & Trim(ip) & "','" _

& Trim(metodo) & "', '" & Trim(direccion) & "', '" & Format(fecha,

"dd/mm/yyyy") & "')"

Registros.Open datos, Conexion

End Sub

Public Sub LlenarSamba(lineaSamba)

inicio = 1

58

fila = 1

linea = lineaSamba

While (ExtraerLineaSamba)

fila = fila + 1

Wend

End Sub

Function ExtraerLineaSamba()

fin = InStr(inicio, linea, Chr(10))

If Not (fin = -1 Or fin = 0) Then

lineaTab = Mid(linea, inicio, fin - inicio + 1)

inicio = fin + 1

LineaAccesoSamba (lineaTab)

ExtraerLineaSamba = True

Else

ExtraerLineaSamba = False

End If

End Function

Public Sub LineaAccesoSamba(tab_ln As String)

If (Left(tab_ln, 1) = "[") Then

año = Mid(tab_ln, 2, 4)

mes = Mid(tab_ln, 7, 2)

dia = Mid(tab_ln, 10, 2)

59

fecha = dia + "/" + mes + "/" + año

hora = Mid(tab_ln, 13, 8)

informacion = Mid(tab_ln, 26, Len(tab_ln) - 26)

Call GuardarSamba

End If

End Sub

Public Sub GuardarSamba()

Set Registros = Nothing

datos = "INSERT INTO Samba VALUES('" & Format(fecha, "dd/mm/yyyy")

& _

"','" & Format(hora, "hh:mm:ss") & "','" & Trim(informacion) & "')"

Registros.Open datos, Conexion

End Sub

Private Sub Form_Unload(Cancel As Integer)

Call CerrarBase

Close #1

Close #2

End Sub

60

Forma de Login de Usuario

Private Sub cmdAceptar_Click()

Dim pass As String

Set Registros = Nothing

sql = "Select password from AccesoUsuario where nick='" & txtNick.Text &

"' and estado=1"

pass = Encriptar(txtNick.Text, txtPass.Text, Encripto)

Registros.Open sql, Conexion

If Not (Registros.EOF Or Registros.BOF) Then

If Not pass = Registros!password Then

MsgBox "Password Inválido", vbOKOnly + vbCritical, "Importante"

txtPass.SetFocus

Else

mdi_principal.Show

mdi_principal.Caption = mdi_principal.Caption + " - Usuario: " +

txtNick

Unload Me

End If

Else

MsgBox "Usuario no existe", vbOKOnly + vbCritical, "Importante"

End If

End Sub

61

Private Sub cmdCancelar_Click()

Call CerrarBase

Unload Me

End Sub

Private Sub Form_Load()

Call AbrirBase

End Sub

Private Sub Form_Unload(Cancel As Integer)

' Call cerrarBase

End Sub

Private Sub txtNick_Change()

cmdAceptar.Enabled = True

If txtNick.Text = "" Then

cmdAceptar.Enabled = False

End If

End Sub

62

Forma de Menú Principal.

Private Sub analizar_Click()

analiza.Visible = True

End Sub

Private Sub acercade_Click()

frm_acerca.Visible = True

End Sub

Private Sub amba_Click()

frmSamba.Show

End Sub

Private Sub apache_Click()

frmApache.Visible = True

End Sub

Private Sub ipusuarios_Click()

End Sub

Private Sub grafico_Click()

frmGrafico.Show

End Sub

Private Sub departamentos_Click()

frmDepart.Show

End Sub

63

Private Sub login_Click()

frmCreaLogin.Show

End Sub

Private Sub MDIForm_Load()

Call AbrirBase

End Sub

Private Sub MDIForm_Unload(Cancel As Integer)

Call CerrarBase

End Sub

Private Sub PNoPermitidas_Click()

frmPaginas.Show

End Sub

Private Sub salir_Click()

End

End Sub

Private Sub squid_Click()

frmSquid.Visible = True

End Sub

Private Sub usuarios_Click()

frmManU.Show

64

Forma Principal de Squid.

Dim tipo As Integer

Dim filas As Integer

Dim fila As Integer

Dim sql As String

Dim todos As Boolean

Private Sub cmdGrafico_Click()

frmGrafico.Show 1

End Sub

Private Sub cmdImprimir_Click()

Dim compara As String

CR.ReportFileName = App.Path & "\squid.rpt"

CR.SQLQuery = sql

CR.WindowTitle = "Hitorial de Apache"

CR.WindowState = crptMaximized

CR.Action = 1

End Sub

Private Sub cmdReporte_Click()

Label2.Visible = True

MSK_FECHA.Visible = True

flxReporte.Visible = True

Call Blanqueo

65

Select Case opcBusqueda.ListIndex

Case 0

fila = 1

If (opcUsuarios.Text = "Todos los usuarios") Then

filas = fila

For i = 0 To opcUsuarios.ListCount - 2

opcUsuarios.ListIndex = i

sql = "Select * from Squid where ip = '" +

obtenerIp(opcUsuarios.Text) + "'"

fila = filas

todos = True

Call LLenar

Next

opcUsuarios.ListIndex = opcUsuarios.ListCount - 1

todos = False

Else

sql = "Select * from Squid where ip = '" +

obtenerIp(opcUsuarios.Text) + "'"

Call LLenar

End If

Case 1

fila = 1

66

sql = "Select * from Squid where fecha='" + Format(opcFecha.Value,

"dd/mm/yyyy") + "'"

Call LLenar

Case 2

sql = "Select * from Squid"

fila = 1

Call LLenar

End Select

Registros.Close

cmdImprimir.Enabled = True

Toolbar1.Buttons(3).Enabled = True

End Sub

Private Sub Blanqueo()

For i = flxReporte.Rows To 2 Step -1

If Not flxReporte.Rows = 2 Then

flxReporte.RemoveItem i

End If

Next i

flxReporte.Clear

Call Llena_flex

sql = ""

cmdImprimir.Enabled = False

67

Toolbar1.Buttons(3).Enabled = False

End Sub

Private Function obtenerIp(usua As String)

Set Registros = Nothing

sql = "Select ip from usuario where usuario = '" + usua + "'"

Registros.Open sql, Conexion

If Not (Registros.EOF And Registros.BOF) Then

obtenerIp = Registros!ip

Registros.Close

End If

End Function

Private Sub LLenar()

Set Registros = Nothing

Registros.Open sql, Conexion

If Registros.EOF Then

If Not todos Then

MsgBox "No hay información", vbInformation + vbOKOnly,

"Información"

End If

Else

Registros.MoveFirst

With flxReporte

68

While Not Registros.EOF

.TextMatrix(fila, 1) = Registros!ip

.TextMatrix(fila, 2) = Registros!fecha

.TextMatrix(fila, 3) = Registros!metodo

.TextMatrix(fila, 4) = Registros!direccion

Registros.MoveNext

fila = fila + 1

.AddItem (fila)

Wend

.RemoveItem (fila)

filas = fila - 1

End With

End If

End Sub

Private Sub cmdmenu_Click()

Unload Me

mdi_principal.Visible = True

End Sub

Private Sub Form_Load()

Me.Left = 0

Me.Top = 0

Dim temp_c As String

69

dia = Day(Date)

mes = Month(Date)

año = Year(Date)

MSK_FECHA.Text = dia & "/" & mes & "/" & año

fin = 0

Call CargarDepart

Call CargarUsuarios

opcBusqueda.ListIndex = 0

filas = 2

Toolbar1.Buttons(3).Enabled = False

mdi_principal.mantenimiento.Enabled = False

Call Llena_flex

End Sub

Private Sub Form_Unload(Cancel As Integer)

mdi_principal.mantenimiento.Enabled = True

End Sub

Private Sub opcBusqueda_Click()

Select Case opcBusqueda.ListIndex

Case 0

opcUsuarios.Visible = True

tipo = 0

Call CargarUsuarios

70

opcUsuarios.Visible = True

opcDepart.Visible = True

Label3.Visible = True

opcFecha.Visible = False

Case 1

tipo = 1

opcFecha.Visible = True

opcDepart.Visible = False

Label3.Visible = False

opcUsuarios.Visible = False

Case 2

tipo = 3

opcDepart.Visible = False

Label3.Visible = False

opcFecha.Visible = False

opcUsuarios.Visible = False

End Select

End Sub

Private Sub CargarDepart()

opcDepart.Clear

Set Registros = Nothing

sql = "Select * from Departamentos"

71

Registros.Open sql, Conexion

Registros.MoveFirst

While (Not Registros.EOF)

If Not (Registros!nombre = "") Then

opcDepart.AddItem Registros!nombre

End If

Registros.MoveNext

Wend

opcDepart.ListIndex = 0

Call CargarUsuarios

End Sub

Private Sub CargarUsuarios()

opcUsuarios.Clear

Set Registros = Nothing

sql = "Select * from Usuario where codDep=" +

Trim(Str(opcDepart.ListIndex + 1)) + " and estado=1"

Registros.Open sql, Conexion

If Not (Registros.EOF And Registros.BOF) Then

Registros.MoveFirst

While (Not Registros.EOF)

opcUsuarios.AddItem Registros!usuario

Registros.MoveNext

72

Wend

opcUsuarios.AddItem "Todos los usuarios"

opcUsuarios.ListIndex = 0

opcUsuarios.Visible = True

Else

opcUsuarios.Visible = False

End If

End Sub

Private Sub Llena_flex()

With flxReporte

.ColWidth(0) = 500

.ColWidth(1) = 1200

.ColWidth(2) = 1100

.ColWidth(3) = 1100

.ColWidth(4) = 7000

.TextMatrix(0, 1) = "Ip de Usuario"

.TextMatrix(0, 2) = "Fecha"

.TextMatrix(0, 3) = "Método"

.TextMatrix(0, 4) = "Direccion"

End With

End Sub

73

Private Sub opcDepart_Click()

Call CargarUsuarios

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

Select Case Button.Index

Case 1

Call cmdReporte_Click

Case 3

Call cmdImprimir_Click

Case 5

Call Blanqueo

End Select

End Sub

74

Forma de Gráfico de Squid

Option Base 1

Dim usuarios(30, 2) As String

Dim contador As Integer

Dim sql As String

Public MisReg As New ADODB.Recordset

Private Sub cmbPaginas_Click()

Call Graficar

End Sub

Private Sub Form_Load()

Call CargarDepart

Call CargarPaginas

End Sub

Private Sub CargarPaginas()

Set Registros = Nothing

sql = "SELECT direccion FROM paginas where estado=1"

Registros.Open sql, Conexion

If Not (Registros.EOF Or Registros.BOF) Then

Registros.MoveFirst

While Not Registros.EOF

cmbPaginas.AddItem (Registros!direccion)

Registros.MoveNext

75

Wend

End If

cmbPaginas.ListIndex = 0

End Sub

Private Sub CargarDepart()

opcDepart.Clear

Set Registros = Nothing

sql = "Select * from Departamentos"

Registros.Open sql, Conexion

Registros.MoveFirst

While (Not Registros.EOF)

If Not (Registros!nombre = "") Then

opcDepart.AddItem Registros!nombre

End If

Registros.MoveNext

Wend

opcDepart.ListIndex = 0

End Sub

Private Sub Graficar()

Dim contPag As Integer

Dim contador As Integer

contador = 0

76

Set Registros = Nothing

sql = "SELECT * FROM usuario where estado=1 and codDep=" +

Trim(Str(opcDepart.ListIndex + 1))

Registros.Open sql, Conexion

If Not (Registros.EOF Or Registros.BOF) Then

Registros.MoveFirst

While Not Registros.EOF

contador = contador + 1

contPag = 0

usuarios(contador, 1) = Registros!ip

Set MisReg = Nothing

sql = "SELECT * FROM squid WHERE direccion LIKE '%" &

cmbPaginas.Text + "%' AND ip='" & Registros!ip & "'"

MisReg.Open sql, Conexion

If Not MisReg.EOF Then

MisReg.MoveFirst

While Not MisReg.EOF

contPag = contPag + 1

MisReg.MoveNext

Wend

End If

usuarios(contador, 2) = contPag

77

Registros.MoveNext

Wend

End If

With chrGrafico

.ToDefaults

.chartType = VtChChartType2dBar

.ColumnCount = 1

.RowCount = contador

For Row = 1 To contador

.Row = Row

.RowLabel = usuarios(Row, 1)

.Data = usuarios(Row, 2)

Next Row

End With

End Sub

Private Sub opcDepart_Click()

Call Graficar

End Sub

78

Forma Principal de Apache

Dim tipo As Integer

Dim filas As Integer

Dim sql As String

Dim todos As Boolean

Dim fila As Integer

Private Sub cmdGrafico_Click()

frmGraApache.Show

End Sub

Private Sub cmdImprimir_Click()

Dim compara As String

CR.ReportFileName = App.Path & "\apache.rpt"

CR.SQLQuery = sql

CR.WindowTitle = "Hitorial de Apache"

CR.WindowState = crptMaximized

CR.Action = 1

End Sub

Private Sub cmdReporte_Click()

Label2.Visible = True

MSK_FECHA.Visible = True

flxReporte.Visible = True

Call Blanqueo

79

Select Case opcBusqueda.ListIndex

Case 0

fila = 1

If (opcUsuarios.Text = "Todos los usuarios") Then

filas = fila

For i = 0 To opcUsuarios.ListCount - 2

opcUsuarios.ListIndex = i

sql = "Select * from Apache where ip = '" +

obtenerIp(opcUsuarios.Text) + "'"

fila = filas

todos = True

Call LLenar

Next

opcUsuarios.ListIndex = opcUsuarios.ListCount - 1

todos = False

Else

sql = "Select * from Apache where ip = '" +

obtenerIp(opcUsuarios.Text) + "'"

Call LLenar

End If

Case 1

fila = 1

80

sql = "Select * from Apache where fecha='" +

Format(opcFecha.Value, "dd/mm/yyyy") + "'"

Call LLenar

Case 2

sql = "Select * from Apache"

fila = 1

Call LLenar

End Select

Registros.Close

cmdImprimir.Enabled = True

Toolbar1.Buttons(3).Enabled = True

End Sub

Private Sub Blanqueo()

For i = flxReporte.Rows To 2 Step -1

If Not flxReporte.Rows = 2 Then

flxReporte.RemoveItem i

End If

Next i

' For i = filas To 2 Step -1

' If Not filas = 2 Then

' flxReporte.RemoveItem i

' End If

81

flxReporte.Clear

Call Llena_flex

sql = ""

cmdImprimir.Enabled = False

Toolbar1.Buttons(3).Enabled = False

End Sub

Private Function obtenerIp(usua As String)

Set Registros = Nothing

sql = "Select ip from usuario where usuario = '" + usua + "'"

Registros.Open sql, Conexion

If Not Registros.EOF Then

obtenerIp = Registros!ip

End If

Registros.Close

End Function

Private Sub LLenar()

Set Registros = Nothing

Registros.Open sql, Conexion

If Registros.EOF Then

If Not todos Then

82

MsgBox "No hay información", vbInformation + vbOKOnly,

"Información"

End If

Else

Registros.MoveFirst

With flxReporte

.TextMatrix(fila, 0) = "1"

While Not Registros.EOF

.TextMatrix(fila, 1) = Registros!ip

.TextMatrix(fila, 2) = Registros!fecha

.TextMatrix(fila, 3) = Registros!hora

.TextMatrix(fila, 4) = Registros!metodo

.TextMatrix(fila, 5) = Registros!archivo

Registros.MoveNext

fila = fila + 1

.AddItem (fila)

Wend

.RemoveItem (fila)

fila = fila - 1

filas = fila

End With

End If

83

End Sub

Private Sub cmdmenu_Click()

Unload Me

mdi_principal.Visible = True

End Sub

Private Sub Form_Load()

Me.Left = 0

Me.Top = 0

Dim temp_c As String

frmApache.Top = 600

frmApache.Left = 1500

dia = Day(Date)

mes = Month(Date)

año = Year(Date)

MSK_FECHA.Text = dia & "/" & mes & "/" & año

fin = 0

opcBusqueda.ListIndex = 0

filas = 2

Toolbar1.Buttons(3).Enabled = False

mdi_principal.mantenimiento.Enabled = False

Call Llena_flex

End Sub

84

Private Sub Llena_flex()

With flxReporte

.ColWidth(0) = 500

.ColWidth(1) = 1200

.ColWidth(2) = 1100

.ColWidth(3) = 800

.ColWidth(4) = 1000

.ColWidth(5) = 6000

.TextMatrix(0, 1) = "Ip de Usuario"

.TextMatrix(0, 2) = "Fecha"

.TextMatrix(0, 3) = "Hora"

.TextMatrix(0, 4) = "Método"

.TextMatrix(0, 5) = "Archivo"

End With

End Sub

Private Sub Form_LostFocus()

Unload Me

End Sub

Private Sub Form_Unload(Cancel As Integer)

mdi_principal.mantenimiento.Enabled = True

End Sub

85

Private Sub opcBusqueda_Click()

Select Case opcBusqueda.ListIndex

Case 0

opcUsuarios.Visible = True

tipo = 0

Call CargarDepart

Call CargarUsuarios

opcUsuarios.Visible = True

opcDepart.Visible = True

Label3.Visible = True

opcFecha.Visible = False

Case 1

tipo = 1

Label3.Visible = False

opcFecha.Visible = True

opcDepart.Visible = False

opcUsuarios.Visible = False

Case 2

tipo = 3

Label3.Visible = False

opcFecha.Visible = False

opcDepart.Visible = False

86

opcUsuarios.Visible = False

End Select

End Sub

Private Sub CargarDepart()

opcDepart.Clear

Set Registros = Nothing

sql = "Select * from Departamentos"

Registros.Open sql, Conexion

Registros.MoveFirst

While (Not Registros.EOF)

If Not (Registros!nombre = "") Then

opcDepart.AddItem Registros!nombre

End If

Registros.MoveNext

Wend

opcDepart.ListIndex = 0

Call CargarUsuarios

End Sub

Private Sub CargarUsuarios()

opcUsuarios.Clear

Set Registros = Nothing

87

sql = "Select * from Usuario where codDep=" +

Trim(Str(opcDepart.ListIndex + 1)) + " and estado=1"

Registros.Open sql, Conexion

If Not Registros.EOF Then

Registros.MoveFirst

While (Not Registros.EOF)

opcUsuarios.AddItem Registros!usuario

Registros.MoveNext

Wend

opcUsuarios.AddItem "Todos los usuarios"

opcUsuarios.ListIndex = 0

opcUsuarios.Visible = True

Else

opcUsuarios.Visible = False

End If

End Sub

Private Sub opcDepart_Click()

Call CargarUsuarios

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

Select Case Button.Index

Case 1

88

Call cmdReporte_Click

Case 3

Call cmdImprimir_Click

Case 5

Call Blanqueo

End Select

End Sub

89

Forma de Gráfico de Apache

Option Base 1

Dim contador As Integer

Dim sql As String

Private Sub Form_Load()

Call Graficar

End Sub

Private Sub Graficar()

With chrGrafico

.ToDefaults

.chartType = VtChChartType2dBar

.ColumnCount = 1

.RowCount = 24

For i = 0 To 23

contador = 0

If i < 10 Then

sql = "SELECT * FROM Apache where hora like '0" + Trim(Str(i)) +

"%'"

If (i = 9) Then

texto = "0" + Trim(Str(i)) + " - " + Trim(Str(i + 1))

Else

texto = "0" + Trim(Str(i)) + " - 0" + Trim(Str(i + 1))

90

End If

Else

sql = "SELECT * FROM Apache where hora like '" + Trim(Str(i)) +

"%'"

texto = Trim(Str(i)) + " - " + Trim(Str(i + 1))

End If

Set Registros = Nothing

Registros.Open sql, Conexion

While Not Registros.EOF

contador = contador + 1

Registros.MoveNext

Wend

.Row = i + 1

.RowLabel = texto

.Data = contador

Next

End With

End Sub

Private Sub opcDepart_Click()

Call Graficar

End Sub

91

Forma Principal de Samba

Dim tipo As Integer

Dim filas As Integer

Dim sql As String

Dim todos As Boolean

Dim fila As Integer

'Private Sub cmdGrafico_Click()

' frmGraApache.Show

'End Sub'

Private Sub cmdImprimir_Click()

Dim compara As String

CR.ReportFileName = App.Path & "\Samba.rpt"

CR.SQLQuery = sql

CR.WindowTitle = "Hitorial de Samba"

CR.WindowState = crptMaximized

CR.Action = 1

End Sub

Private Sub cmdReporte_Click()

Label2.Visible = True

MSK_FECHA.Visible = True

flxReporte.Visible = True

Call Blanqueo

92

fila = 1

If Not (opcTodo.Value = 1) Then

sql = "Select * from Samba where fecha='" + Format(opcFecha.Value,

"dd/mm/yyyy") + "'"

Else

sql = "Select * from Samba"

End If

Call LLenar

Registros.Close

cmdImprimir.Enabled = True

Toolbar1.Buttons(3).Enabled = True

End Sub

Private Sub LLenar()

Set Registros = Nothing

Registros.Open sql, Conexion

If Registros.EOF Then

If Not todos Then

MsgBox "No hay información", vbInformation + vbOKOnly,

"Información"

End If

Else

Registros.MoveFirst

93

With flxReporte

.TextMatrix(1, 0) = 1

While Not Registros.EOF

.TextMatrix(fila, 1) = Registros!fecha

.TextMatrix(fila, 2) = Registros!hora

.TextMatrix(fila, 3) = Registros!informacion

Registros.MoveNext

fila = fila + 1

.AddItem (fila)

Wend

.RemoveItem (fila)

filas = fila - 1

End With

End If

End Sub

Private Sub cmdmenu_Click()

Unload Me

mdi_principal.Visible = True

End Sub

Private Sub Form_Load()

Me.Left = 0

Me.Top = 0

94

Dim temp_c As String

frmSamba.Top = 600

frmSamba.Left = 1500

dia = Day(Date)

mes = Month(Date)

año = Year(Date)

MSK_FECHA.Text = dia & "/" & mes & "/" & año

fin = 0

filas = 2

Toolbar1.Buttons(3).Enabled = False

mdi_principal.mantenimiento.Enabled = False

Call Llena_flex

End Sub

Private Sub Llena_flex()

With flxReporte

.ColWidth(0) = 500

.ColWidth(1) = 1200

.ColWidth(2) = 1100

.ColWidth(3) = 6000

.TextMatrix(0, 1) = "Fecha"

.TextMatrix(0, 2) = "Hora"

.TextMatrix(0, 3) = "Información"

95

End With

End Sub

Private Sub Blanqueo()

For i = flxReporte.Rows To 2 Step -1

If Not flxReporte.Rows = 2 Then

flxReporte.RemoveItem i

End If

Next i

flxReporte.Clear

Call Llena_flex

sql = ""

cmdImprimir.Enabled = False

Toolbar1.Buttons(3).Enabled = False

End Sub

Private Sub Form_LostFocus()

Unload Me

End Sub

Private Sub Form_Unload(Cancel As Integer)

mdi_principal.mantenimiento.Enabled = True

End Sub

Private Sub opcTodo_Click()

If opcTodo.Value Then

96

opcFecha.Visible = False

Else

opcFecha.Visible = True

End If

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

Select Case Button.Index

Case 1

Call cmdReporte_Click

Case 3

Call cmdImprimir_Click

Case 5

Call Blanqueo

End Select

End Sub

97

Forma Mantenimiento de Usuario

Dim RegUsuarios As New ADODB.Recordset

Dim RegDepart As New ADODB.Recordset

Dim Modificar As Boolean

Dim filas As Integer

Dim ipAnterior As String

Private Const PORIP As Integer = 0

Private Const PORNOMBRE As Integer = 1

Private Sub cmdAgregar_Click()

txtIP.Text = ""

txtNombre.Text = ""

Call Cambiar(False)

End Sub

Private Sub Cambiar(valor As Boolean)

flxUsuarios.Visible = valor

fraDatos.Visible = Not valor

cmdAceptar.Visible = Not valor

cmdCancelar.Visible = Not valor

cmdAgregar.Visible = valor

cmdModificar.Visible = valor

cmdEliminar.Visible = valor

cmdSalir.Visible = valor

98

End Sub

Private Sub actualizar()

Dim fila As Integer

fila = 1

Set RegUsuarios = Nothing

Set RegDepart = Nothing

RegUsuarios.Open "Select * from Usuario where estado=1", Conexion

RegDepart.Open "Select * from Departamentos", Conexion

If Not (RegUsuarios.EOF Or RegDepart.EOF) Then

RegUsuarios.MoveFirst

While Not RegUsuarios.EOF

With flxUsuarios

.TextMatrix(fila, 1) = RegUsuarios!ip

.TextMatrix(fila, 2) = RegUsuarios!usuario

buscar = "coddep=" + Str(RegUsuarios!coddep)

RegDepart.Find buscar

.TextMatrix(fila, 3) = RegDepart!nombre

RegDepart.MoveFirst

fila = fila + 1

.AddItem fila

End With

RegUsuarios.MoveNext

99

Wend

flxUsuarios.RemoveItem fila

End If

End Sub

Private Sub cmdAceptar_Click()

If Not (txtNombre.Text = "" Or txtIP.Text = "") Then

If VerificarIP(Trim(txtIP.Text)) Then

Set RegUsuarios = Nothing

If (noRepetido(Trim(txtIP.Text), PORIP) And

noRepetido(Trim(txtNombre.Text), PORNOMBRE)) Then

If Modificar Then

datos = "Update Usuario set ip ='" + Trim(txtIP.Text) + "',

usuario='" + Trim(txtNombre.Text) + "', codDep=" +

Trim(Str(opcDepart.ListIndex + 1)) + " Where ip='" + ipAnterior + "'"

RegUsuarios.Open datos, Conexion

Else

datos = "INSERT INTO Usuario VALUES('" & Trim(txtIP.Text) &

"','" & Trim(txtNombre.Text) & "'," & BuscaDepart(opcDepart.Text) & ",1)"

RegUsuarios.Open datos, Conexion

End If

Else

100

MsgBox "Ya existe un usuario similar", vbOKOnly +

vbInformation, "Información"

End If

Call LimpiaFlex

Cambiar (True)

Modificar = False

Else

MsgBox "Error en dirección IP", vbOKOnly + vbInformation,

"Información"

txtIP.SetFocus

End If

Else

MsgBox "No se permite campos en blanco", vbOKOnly + vbInformation,

"Información"

txtNombre.SetFocus

End If

End Sub

Private Function BuscaDepart(texto) As String

Set Registros = Nothing

busc = "select * from Departamentos where nombre='" + texto + "'"

Registros.Open busc, Conexion

If Registros.EOF Then

101

MsgBox "Nose puede agregar usuario sin departamento"

Else

BuscaDepart = Registros!coddep

End If

End Function

Private Function noRepetido(texto As String, tipo As Integer)

Set Registros = Nothing

If (tipo = PORIP) Then

busqueda = "Select ip from Usuario where ip='" & texto & "' and

estado=1"

Else

busqueda = "Select ip from Usuario where usuario='" & texto & "' and

estado=1"

End If

Registros.Open busqueda, Conexion

If (Registros.EOF Or Registros.BOF) Then

noRepetido = True

Else

noRepetido = False

End If

End Function

Private Sub cmdCancelar_Click()

102

Cambiar (True)

End Sub

Private Sub cmdEliminar_Click()

With flxUsuarios

If Not .TextMatrix(.Row, 1) = "" Then

resp = MsgBox("Esá seguro de querer eliminar al usuario: " +

.TextMatrix(.Row, 2), vbYesNoCancel + vbCritical, "Eliminacón de Registro")

If resp = vbYes Then

Set RegUsuarios = Nothing

sql = "UPDATE Usuario SET estado=0 where ip='" +

.TextMatrix(.Row, 1) + "'"

RegUsuarios.Open sql, Conexion

Call LimpiaFlex

End If

End If

End With

End Sub

Private Sub cmdModificar_Click()

With flxUsuarios

If Not .TextMatrix(.Row, 1) = "" Then

txtNombre.Text = .TextMatrix(.Row, 2)

txtIP.Text = .TextMatrix(.Row, 1)

103

ipAnterior = .TextMatrix(.Row, 1)

'buscar = "nombre='" + .TextMatrix(.Row, 3) + "'"

'RegDepart.Find buscar

opcDepart.ListIndex = Seleccionar(.TextMatrix(.Row, 3))

RegDepart.MoveFirst

Call Cambiar(False)

Modificar = True

End If

End With

End Sub

Private Function Seleccionar(texto As String) As Integer

For i = 0 To opcDepart.ListCount - 1

opcDepart.ListIndex = i

If opcDepart.Text = texto Then

Seleccionar = i

End If

Next

End Function

Private Sub cmdSalir_Click()

Unload Me

End Sub

Private Sub flxUsuarios_Click()

104

cmdEliminar.Enabled = True

cmdModificar.Enabled = True

End Sub

Private Sub CargarDepart()

opcDepart.Clear

Set Registros = Nothing

sql = "Select * from Departamentos"

Registros.Open sql, Conexion

Registros.MoveFirst

While (Not Registros.EOF)

If Not (Registros!nombre = "") Then

opcDepart.AddItem Registros!nombre

'opcDepart.ItemData(opcDepart.NewIndex) = Registros!coddep

End If

Registros.MoveNext

Wend

opcDepart.ListIndex = 0

End Sub

Private Sub Form_Load()

Me.Left = 0

Me.Top = 0

Call Llena_flex

105

Call CargarDepart

Set RegDepart = Nothing

RegDepart.Open "Select * from Departamentos", Conexion

filas = 2

End Sub

Private Sub Llena_flex()

With flxUsuarios

.ColWidth(0) = 500

.ColWidth(1) = 1200

.ColWidth(2) = 3700

.ColWidth(3) = 1704

.TextMatrix(0, 1) = "Ip de Usuario"

.TextMatrix(0, 2) = "Nombre de Usuario"

.TextMatrix(1, 0) = "1"

End With

Call actualizar

End Sub

Private Sub LimpiaFlex()

For i = flxUsuarios.Rows To 2 Step -1

If Not flxUsuarios.Rows = 2 Then

flxUsuarios.RemoveItem i

End If

106

Next i

flxUsuarios.Clear

Call Llena_flex

End Sub

Private Sub txtIP_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

opcDepart.SetFocus

End If

End Sub

Private Sub txtNombre_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

txtIP.SetFocus

End If

End Sub

107

Forma de Mantenimiento de Paginas no Permitidas

Dim RegPaginas As New ADODB.Recordset

Dim Modificar As Boolean

Dim filas As Integer

Dim cod As String

Dim codigo As String

Private Sub cmdAgregar_Click()

txtPagina.Text = ""

Call Cambiar(False)

End Sub

Private Sub Cambiar(valor As Boolean)

flxPaginas.Visible = valor

fraDatos.Visible = Not valor

cmdAceptar.Visible = Not valor

cmdCancelar.Visible = Not valor

cmdAgregar.Visible = valor

cmdModificar.Visible = valor

cmdEliminar.Visible = valor

cmdSalir.Visible = valor

End Sub

Private Sub actualizar()

Dim fila As Integer

108

fila = 1

Set RegPaginas = Nothing

RegPaginas.Open "Select * from Paginas where estado=1", Conexion

If Not RegPaginas.EOF Then

RegPaginas.MoveFirst

While Not RegPaginas.EOF

With flxPaginas

.TextMatrix(fila, 1) = RegPaginas!direccion

fila = fila + 1

.AddItem fila

End With

RegPaginas.MoveNext

Wend

flxPaginas.RemoveItem fila

End If

End Sub

Private Sub cmdAceptar_Click()

If Not txtPagina.Text = "" Then

If Modificar Then

datos = "Update Paginas set direccion='" + Trim(txtPagina.Text) + "'

Where direccion='" + flxPaginas.TextMatrix(flxPaginas.Row, 1) + "'"

Set RegPaginas = Nothing

109

RegPaginas.Open datos, Conexion

Else

If Repite(Trim(txtPagina.Text)) Then

resp = MsgBox("La página ya existe, ¿desea activarla?", vbYesNo

+ vbInformation, "Información")

If resp = vbYes Then

datos = "Update Paginas set estado=1 Where direccion='" +

Trim(txtPagina.Text) + "'"

Set RegPaginas = Nothing

RegPaginas.Open datos, Conexion

End If

Else

datos = "INSERT INTO Paginas VALUES('" & Trim(Ultimo()) & "','"

& Trim(txtPagina.Text) & "',1)"

Set RegPaginas = Nothing

RegPaginas.Open datos, Conexion

End If

End If

Call LimpiaFlex

Cambiar (True)

Modificar = False

Else

110

MsgBox "No se permite campos en blanco", vbOKOnly + vbInformation,

"Información"

txtPagina.SetFocus

End If

End Sub

Private Function Repite(texto) As Boolean

Set RegPaginas = Nothing

busc = "Select direccion from Paginas where direccion='" + texto + "'"

RegPaginas.Open busc, Conexion

If Not RegPaginas.EOF Then

Repite = True

Else

Repite = False

End If

End Function

Private Function Ultimo() As String

Set RegPaginas = Nothing

busca = "SELECT codPagina FROM Paginas"

RegPaginas.Open busca, Conexion

If Not (RegPaginas.EOF And RegPaginas.BOF) Then

RegPaginas.MoveLast

If RegPaginas!codPagina = "" Then

111

RegPaginas.MovePrevious

End If

numero = Trim(Str(Int(RegPaginas!codPagina) + 1))

Select Case Len(numero)

Case 1

Ultimo = "000" + numero

Case 2

Ultimo = "00" + numero

Case 3

Ultimo = "0" + numero

End Select

Else

Ultimo = "0000" + numero

End If

End Function

Private Sub cmdCancelar_Click()

Cambiar (True)

End Sub

Private Sub cmdEliminar_Click()

With flxPaginas

resp = MsgBox("Esá seguro de querer eliminar la página.",

vbYesNoCancel + vbCritical, "Eliminacón de Registro")

112

If resp = vbYes Then

Set RegPaginas = Nothing

sql = "UPDATE Paginas set estado=0 where direccion='" +

.TextMatrix(.Row, 1) + "'"

RegPaginas.Open sql, Conexion

Call LimpiaFlex

End If

End With

End Sub

Private Sub cmdModificar_Click()

With flxPaginas

txtPagina.Text = .TextMatrix(.Row, 1)

cod = .TextMatrix(.Row, 0)

Call Cambiar(False)

Modificar = True

End With

End Sub

Private Sub cmdSalir_Click()

Unload Me

End Sub

Private Sub flxUsuarios_Click()

cmdEliminar.Enabled = True

113

cmdModificar.Enabled = True

End Sub

Private Sub flxPaginas_Click()

cmdEliminar.Enabled = True

cmdModificar.Enabled = True

End Sub

Private Sub Form_Load()

Me.Left = 0

Me.Top = 0

Call Llena_flex

filas = 2

End Sub

Private Sub Llena_flex()

With flxPaginas

.ColWidth(0) = 500

.ColWidth(1) = 3700

.TextMatrix(0, 1) = "Dirección"

.TextMatrix(1, 0) = "1"

End With

Call actualizar

End Sub

114

Private Sub LimpiaFlex()

For i = flxPaginas.Rows To 2 Step -1

If Not flxPaginas.Rows = 2 Then

flxPaginas.RemoveItem i

End If

Next i

flxPaginas.Clear

Call Llena_flex

End Sub

Private Sub Image1_Click()

'On Error GoTo noHayArchivo

direccion = "C:\Archivos de programa\Internet Explorer\IEXPLORE.EXE " +

txtPagina.Text

try = Shell(direccion, vbNormalFocus)

If try < 0 Then

MsgBox "No se encuentra el Internet explorer", vbCritical +

vbExclamation, "Importante"

End If

End Sub

Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As

Single, Y As Single)

Image1.BorderStyle = 1

115

End Sub

Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As

Single, Y As Single)

Image1.BorderStyle = 0

End Sub

Private Sub txtPagina_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Call cmdAceptar_Click

End If

End Sub

116

Forma de Mantenimiento de Login de Usuario

Dim sql As String

Private Sub cmdAceptar_Click()

If Not cmbUsuarios.Text = "administrador" Then

If fraUsuarios.Visible Then

If txtNick.Text = "" Then

sql = "Update AccesoUsuario set estado='0' where nick='" +

cmbUsuarios.Text + "'"

Set Registros = Nothing

Registros.Open sql, Conexion

End If

fraUsuarios.Visible = False

fraDatos.Visible = True

cmdEliminar.Visible = True

Else

If Not (txtNombre.Text = "" Or txtApellido.Text = "" Or txtNick.Text = ""

Or txtPass.Text = "") Then

If Not Repite(txtNick.Text) Then

If txtPass.Text = txtPass2.Text Then

Dim codigo As String

sql = "SELECT codusuario FROM AccesoUsuario"

Set Registros = Nothing

117

Registros.Open sql, Conexion

If Registros.EOF Then

codigo = LLenar(codigo)

Else

Registros.MoveLast

codigo = Registros!codUsuario

codigo = LLenar(Int(codigo) + 1)

End If

Set Registros = Nothing

sql = "INSERT INTO accesoUsuario VALUES('" & codigo &

"','" & Trim(txtNombre.Text) & _

"','" & Trim(txtApellido.Text) & "','" & Trim(txtNick.Text) & "','" &

Trim(Encriptar(txtNick.Text, txtPass.Text, Encripto)) & _

"'," & cmbCargo.ListIndex & ",1)"

Registros.Open sql, Conexion

cmdAceptar.Visible = False

cmdAgregar.Visible = True

cmdEliminar.Visible = True

Call habilitar(False)

Else

MsgBox "El password no coincide, favor revisar el password",

vbOKOnly + vbInformation, "Importante"

118

txtPass.SetFocus

End If

Else

MsgBox "Ya existe un usuario con el mismo Nick", vbOKOnly +

vbInformation, "Información"

End If

Else

MsgBox "No se permite campos en blanco", vbOKOnly +

vbInformation, "Información"

End If

End If

End If

End Sub

Private Function Repite(texto) As Boolean

Set Registros = Nothing

busc = "Select nick from AccesoUsuario where nick='" + texto + "' and

estado=1"

Registros.Open busc, Conexion

If Not Registros.EOF Then

Repite = True

Else

Repite = False

119

End If

End Function

Private Sub cmdAgregar_Click()

Call habilitar(True)

Call Blanqueo

cmdAgregar.Visible = False

cmdAceptar.Visible = True

cmdEliminar.Visible = False

End Sub

Private Sub cmdCancelar_Click()

Unload Me

End Sub

Private Sub CargarUsuario()

cmbUsuarios.Clear

Dim sql As String

sql = "Select * from AccesoUsuario where estado=1"

Set Registros = Nothing

Registros.Open sql, Conexion

While Not Registros.EOF

cmbUsuarios.AddItem Registros!nick

Registros.MoveNext

Wend

120

End Sub

Private Sub cmdEliminar_Click()

Call CargarUsuario

cmbUsuarios.ListIndex = 0

fraUsuarios.Visible = True

fraDatos.Visible = False

cmdAceptar.Visible = True

cmdAgregar.Visible = False

cmdEliminar.Visible = False

End Sub

Private Sub Form_Load()

Me.Left = 0

Me.Top = 0

cmbCargo.ListIndex = 0

End Sub

Private Sub habilitar(valor As Boolean)

txtNombre.Enabled = valor

txtApellido.Enabled = valor

txtNick.Enabled = valor

txtPass.Enabled = valor

txtPass2.Enabled = valor

cmbCargo.Enabled = valor

121

End Sub

Private Sub Blanqueo()

txtNombre.Text = ""

txtApellido.Text = ""

txtNick.Text = ""

txtPass.Text = ""

txtPass2.Text = ""

txtNombre.SetFocus

End Sub

Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)

End Sub

122

Forma de Mantenimiento de Departamento

Dim RegDepart As New ADODB.Recordset

Dim Modificar As Boolean

Dim filas As Integer

Dim cod As String

Dim codigo As String

Private Sub cmdAgregar_Click()

txtDepart.Text = ""

Call Cambiar(False)

End Sub

Private Sub Cambiar(valor As Boolean)

flxDepart.Visible = valor

fraDatos.Visible = Not valor

cmdAceptar.Visible = Not valor

cmdCancelar.Visible = Not valor

cmdAgregar.Visible = valor

cmdModificar.Visible = valor

cmdEliminar.Visible = valor

cmdSalir.Visible = valor

End Sub

Private Sub actualizar()

Dim fila As Integer

123

fila = 1

Set RegDepart = Nothing

RegDepart.Open "Select * from Departamentos", Conexion

RegDepart.MoveFirst

While Not RegDepart.EOF

With flxDepart

.TextMatrix(fila, 1) = RegDepart!nombre

fila = fila + 1

.AddItem fila

End With

RegDepart.MoveNext

Wend

flxDepart.RemoveItem fila

End Sub

Private Sub cmdAceptar_Click()

If Not txtDepart.Text = "" Then

If Modificar Then

datos = "Update Departamentos set nombre='" + Trim(txtDepart.Text)

+ "' Where nombre='" + flxDepart.TextMatrix(flxDepart.Row, 1) + "'"

Else

If Repite(Trim(txtDepart.Text)) Then

124

resp = MsgBox("El departamento ya existe", vbOKOnly +

vbInformation, "Información")

Else

datos = "INSERT INTO Departamentos VALUES('" & Ultimo() & "','"

& Trim(txtDepart.Text) & "')"

Set RegDepart = Nothing

RegDepart.Open datos, Conexion

End If

End If

Call LimpiaFlex

Cambiar (True)

Modificar = False

Else

MsgBox "No se permite campos en blanco", vbOKOnly + vbInformation,

"Información"

txtDepart.SetFocus

End If

End Sub

Private Function Repite(texto) As Boolean

Set RegDepart = Nothing

busc = "Select nombre from Departamentos where nombre='" + texto + "'"

RegDepart.Open busc, Conexion

125

If Not RegDepart.EOF Then

Repite = True

Else

Repite = False

End If

End Function

Private Sub cmdCancelar_Click()

Cambiar (True)

End Sub

Private Sub cmdEliminar_Click()

With flxDepart

codigo = BuscaCodDep(.TextMatrix(.Row, 1))

resp = MsgBox("Esá seguro de querer eliminar el departamento, se

eliminarán los usuarios de dicho departamento.", vbYesNoCancel +

vbCritical, "Eliminacón de Registro")

If resp = vbYes Then

sql = "DELETE FROM Usuario where codDep=" + codigo

Set RegDepart = Nothing

RegDepart.Open sql, Conexion

sql = "DELETE FROM Departamentos where codDep=" + codigo

Set RegDepart = Nothing

RegDepart.Open sql, Conexion

126

Call LimpiaFlex

End If

End With

End Sub

Private Function Ultimo() As String

Set RegDepart = Nothing

busca = "SELECT codDep FROM Departamentos"

RegDepart.Open busca, Conexion

If Not RegDepart.EOF Then

RegDepart.MoveLast

numero = Trim(Str(Int(RegDepart!coddep) + 1))

If Len(numero) = 1 Then

Ultimo = "0" + numero

Else

Ultimo = numero

End If

End If

End Function

Private Function BuscaCodDep(departamento As String) As String

Set RegDepart = Nothing

busca = "SELECT codDep FROM Departamentos WHERE nombre='" +

departamento + "'"

127

RegDepart.Open busca, Conexion

If Not RegDepart.EOF Then

BuscaCodDep = RegDepart!coddep

End If

End Function

Private Function Completar(codigo As String) As String

tama = Len(codigo)

Select Case tama

Case 1

codigo = "0" + codigo

End Select

Completar = codigo

End Function

Private Sub cmdModificar_Click()

With flxDepart

txtDepart.Text = .TextMatrix(.Row, 1)

cod = .TextMatrix(.Row, 0)

Call Cambiar(False)

Modificar = True

End With

End Sub

Private Sub cmdSalir_Click()

128

Unload Me

End Sub

Private Sub flxDepart_Click()

cmdEliminar.Enabled = True

cmdModificar.Enabled = True

End Sub

Private Sub Form_Load()

Call AbrirBase

Me.Left = 0

Me.Top = 0

Call Llena_flex

filas = 2

End Sub

Private Sub Llena_flex()

With flxDepart

.ColWidth(0) = 500

.ColWidth(1) = 3700

.TextMatrix(0, 1) = "Dirección"

.TextMatrix(1, 0) = "1"

End With

Call actualizar

End Sub

129

Private Sub LimpiaFlex()

For i = flxDepart.Rows To 2 Step -1

If Not flxDepart.Rows = 2 Then

flxDepart.RemoveItem i

End If

Next i

flxDepart.Clear

Call Llena_flex

End Sub

Private Sub txtDepart_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Call cmdAceptar_Click

End If

End Sub

130

Forma de a cerca del proyecto.

Private Sub cmdOK_Click()

Unload Me

End Sub

DICCIONARIO DE DATOS

NOMBRE: Administrador de la red

ALIAS: Administrador

DESCRIPCIÓN: Persona encargada de llevar el control de la red dentro de

una organización.

NOMBRE: Recursos compartidos en red

ALIAS: Compartir

DESCRIPCIÓN: Son los equipos tales como impresoras, PC, archivos y

carpetas que van a estar disponibles para todos los usuarios de la red.

NOMBRE: Dirección IP

ALIAS: IP

DESCRIPCIÓN: Dirección lógica asignada a la tarjeta de red de cada PC.

131

NOMBRE: Usuarios de la red

ALIAS: Usuarios

DESCRIPCIÓN: Persona que utiliza los recursos, servicios en una

organización.

NOMBRE: Archivos Logs

ALIAS: Logs

DESCRIPCIÓN: Archivos planos o conocidos como tipo texto en la cual se

registra todos los procesos que se generan al realizar una actividad.

NOMBRE: Objeto de datos

ALIAS: Objeto

DESCRIPCIÓN: Es una representación de cualquier composición de

información que debe comprender el software.

NOMBRE: Composición de información

ALIAS: Atributo

DESCRIPCIÓN: Son las características únicas con la cual vamos a

diferenciar a nuestros objetos.

132

Campos de “USUARIO” Tabla

NOMBRE TIPO DE DATO PK FK NULL

IP Varchar(15) si no Not null

usuario Varchar(50) no no Not null

estado entero no no Not null

Campos de “SQUID” Tabla

NOMBRE TIPO DE DATO PK FK NULL

IP Varchar(15) si no Not null

metodo Varchar(4) no no Not null

direccion Varchar(255) no no Not null

fecha Varchar(10) no no Not null

Campos de “SAMBA” Tabla

NOMBRE TIPO DE DATO PK FK NULL

hora Varchar(10) no no Not null

fecha Varchar(8) no no Not null

Información Varchar(100) no no Not null

Campos de “PAGINAS” Tabla

NOMBRE TIPO DE DATO PK FK NULL

codpagina Varchar(255) si no Not null

direccion Varchar(255) no no Not null

estado entero no no Not null

133

Campos de “ACCESO USUARIO” Tabla

NOMBRE TIPO DE DATO PK FK NULL

codusuario Varchar(4) si no Not null

nombre Varchar(50) no no Not null

apellido Varchar(50) no no Not null

nick Varchar(20) no no Not null

password Varchar(50) no no Not null

cargo entero no no Not null

estado entero no no Not null

Campos de “APACHE” Tabla

NOMBRE TIPO DE DATO PK FK NULL

IP Varchar(15) si no Not null

fecha Varchar(10) no no Not null

hora Varchar(8) no no Not null

metodo Varchar(4) no no Not null

archivo Varchar(255) no no Not null

134

Variables del Sistema

Variables al Cargar Servicios

NOMBRE TIPO DE DATO

LineaApache String

Apache Long

fin Long

Linea String

Fila Long

Inicio Long

Ip String

Fecha String

Hora String

Metodo String

Archivo String

Direccion String

Informacion String

Controlar Timer

Comenzar Timer

Ini Long

Datos String

LineaTab String

Tab_in String

Variables Login Usuario

NOMBRE TIPO DE DATO

Pass String

Estado Boolean

Nick String

135

Variables del Menú Principal

NOMBRE TIPO DE DATO

Analiza Boolean

Cancel Integer

Variables del Servicio Squid

NOMBRE TIPO DE DATO

Tipo Integer

Filas Integer

Fila Integer

Sql String

Todos Boolean

Compara String

I Integer

Temp String

Dia Date

Mes Date

Año Date

Usuarios String

ContPag Integer

Contador Integer

Variables del Servicio Apache

NOMBRE TIPO DE DATO

Tipo Integer

Filas Integer

Sql String

Todos Boolean

136

Fila Integer

Compara String

I Integer

Temp_c String

Dia Date

Mes Date

Año Date

Fin Integer

Contador Integer

Texto String

Variables del Servicio Samba

NOMBRE TIPO DE DATO

Tipo Integer

Filas Integer

Sql String

Todos Boolean

Fila Integer

Compara String

Temp_c String

Dia Date

Mes Date

Año Date

Cancel Integer

137

Variables de Mantenimieno del Usuario

NOMBRE TIPO DE DATO

RegUsuarios String

RegDepart String

Modificar Boolean

Filas Integer

IpAnterior String

Porip Integer

Pornombre Integer

Valor Boleen

Fila Integer

Datos String

Texto String

I Integer

Variables de Mantenimiento de Páginas no Permitidas

NOMBRE TIPO DE DATO

RegPaginas String

Modificar Boolean

Filas Integer

Cod String

Codigo String

Valor Boolean

Fila Integer

Datos String

Repite Boolean

Busca String

Ultimo integer

Numero Integer

138

I Integer

Dirección String

KeyAscii Integer

Variables de Mantenimiento de Login de Usuario

NOMBRE TIPO DE DATO

Sql String

Nick String

Pass String

Codigo String

Repite Boolean

Valor Boolean

Variables de Mantenimiento de Departamentos

NOMBRE TIPO DE DATO

Regdepart String

Modificar Boolean

Filas Integer

Cod String

Codigo String

Valor Boolean

Fila Integer

Sql String

Ultimo String

Departamento String

Tama String

Completar String

KeyAscii Integer

139