proyecto de grado ingeniero en sistemas …repositorio.ug.edu.ec/bitstream/redug/6856/1/tesis...
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
Í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
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.
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.
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
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.
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.
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).
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.
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
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