You are on page 1of 72

Indice

1 Introducci
on

1.1 Introducci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2 Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3 Propuesta de tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.4 Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.5 Descripci
on de tesis

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Fundamentos te
oricos

2.1 Software libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2 Sistema operativo Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10


2.3 Red de area local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Administraci
on de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Seguridad en redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.7 Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.8 Lenguaje de programaci
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.9 Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.10 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.11 PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3 Desarrollo e implementaci
on

41

3.1 Instalaci
on de Fedora Core 4 de Linux . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2 Configuraci
on de tarjetas de red

. . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.3 Activaci
on de Servicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4 Puente de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1

INDICE

3.5 Instalaci
on de NocatAuth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.6 Configuraci
on de NocatAuth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.7 Configuraci
on de apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.8 Puesta en marcha de NoCatAuth . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.9 Funcionalidad de la puerta de enlace . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.10 Instalaci
on y configuraci
on de webmin . . . . . . . . . . . . . . . . . . . . . . . . 52
3.11 SARG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.12 ClamAv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.13 Bases de datos en MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.14 Dise
no PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.15 Instalaci
on y configuraci
on de Squid . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.16 Configuraci
on del cortafuegos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.17 Configuraci
on del cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4 Resultados obtenidos

87

4.1 An
alisis de requerimientos sobre Fedora Core 4 de Linux. . . . . . . . . . . . . . 87
4.2 Instalaci
on de Fedora Core 4 de Linux. . . . . . . . . . . . . . . . . . . . . . . . . 88
4.3 Plataforma Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.4 Programaci
on sobre Fedora Core 4 de Linux. . . . . . . . . . . . . . . . . . . . . 88
4.5 PHP como herramienta de programaci
on. . . . . . . . . . . . . . . . . . . . . . . 89
4.6 Montar el servidor Squid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.7 Grupos y permisos de usuarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.8 Monitoreo de red. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.9 Acceso a p
aginas con virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.10 Restricci
on del ancho de banda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.11 Control de acceso a mensajeros instant
aneos a traves de su n
umero de puerto . . 101
4.12 Restricci
on de direcciones ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.13 Restricci
on de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.14 Restricci
on de p
aginas de Internet . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5 Conclusiones

109

Lista de Figuras
2.1 Comparaci
on entre un sistema de archivos y el sistema de nombres de dominio . 27
2.2 Sistema de archivos tradicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3 Sistema de nombres de dominio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4 Estructura jer
arquica del DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1 Limpiar iptables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 P
agina principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3 P
agina de bienvenida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.4 Autenticaci
on del administrador . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.5 Men
u del administrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6 Restringir una direcci
on ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.7 Restricci
on de un rango de direcciones ip

. . . . . . . . . . . . . . . . . . . . . . 61

3.8 Desbloquear direcciones ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63


3.9 Restringir usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.10 Desbloquear usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.11 Restringir el ancho de banda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.12 Restringir p
aginas de Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.13 Alta de alumnos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.14 Baja de alumnos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.15 Crear reportes parte 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.16 Crear reportes parte 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.17 Crear reportes parte 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.18 Revisar reportes anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.19 Cambiar contrase
na del administrador . . . . . . . . . . . . . . . . . . . . . . . . 74
3

LISTA DE FIGURAS
3.20 Autenticaci
on del usuario privilegiado . . . . . . . . . . . . . . . . . . . . . . . . 75
3.21 Men
u del usuario privilegiado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.22 Restringir una direcci
on ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.23 Restringir un rango de direcciones ip . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.24 Desbloquear direcciones ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.25 Cambiar contrase
na del usuario privilegiado . . . . . . . . . . . . . . . . . . . . . 80
4.1 Top p
aginas accesadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.2 Top acceso de sesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.3 Sitios de Internet y sesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.4 Descargas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.5 Tiempo de conexi
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.6 Sitios denegados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.7 Ancho de banda utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.8 Velocidades de transmisi
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.9 Comparaci
on de la variaci
on de la velocidad de transmisi
on . . . . . . . . . . . . 101
4.10 Acceso de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.11 Direcci
on denegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.12 Direcci
on denegada (2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.13 Usuario restringido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.14 Restringir www.playboy.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.15 Restringir www.download.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

CONTROL Y MONITOREO DE SESIONES DE


INTERNET MEDIANTE UN SERVIDOR SQUID EN
LINUX
JORGE ALVAREZ LOZANO
CARLOS SANDOVAL MEDINA
5 DE JUNIO DEL 2007

LISTA DE FIGURAS

Captulo 1

Introducci
on
1.1

Introducci
on
En la era que nos toca vivir, la llamada sociedad de la tecnologa o del conocimiento,

podemos hablar que la Internet m


as all
a de ser una moda se ha convertido en una necesidad, sus
caractersticas: informativa, documental y transaccional hacen que tenga un impacto profundo
en el trabajo, el ocio y el conocimiento. Dentro de los aspectos del conocimiento, podemos
mencionar que actualmente la mayora de las instituciones de educaci
on cuentan con centros
de inform
atica que potencian los procesos de ense
nanza-aprendizaje.
Gracias a la dimensi
on que nos dan las herramientas de la Internet, podemos encontrar
en ella diferentes contextos virtuales, los mismos que dan la pauta para que los usuarios se
descontextualicen del mundo real que les rodea, es decir, millones de usuarios tienen acceso
f
acil e inmediato a una gran cantidad de informaci
on diversa en lnea y al mismo tiempo.
La informaci
on que fluye en la Internet es variada y descentralizada, as, desde la perspectiva del conocimiento, Internet ha sido una ventaja y al mismo tiempo una responsabilidad de
quien la utiliza, ya que puede proporcionar una cantidad significativa de informaci
on y de una
interactividad que seria inaccesible de otra manera, aunque por otro lado esta descentralizaci
on
representa contenidos que denigran la formaci
on de las instituciones educativas, tal es el caso
de la industria de la pornografa.
Se podra mencionar que son pocas las instituciones educativas que dan un uso adecuado
3


CAPITULO 1. INTRODUCCION

a esta tecnologa, ya que algunos utilizan la Internet solo para los mensajeros instant
aneos,
descargar m
usica, pelculas, videos, etc. Muchos gobiernos han procurado sin exito poner
restricciones en el uso de estas industrias en Internet, de tal manera que, una soluci
on a esto
seria restringir todos estos accesos a traves de software y hardware implantado en las mismas
instituciones educativas como metodos de administraci
on y seguridad en los accesos de los
usuarios.

1.2

Planteamiento del problema


En algunas instituciones educativas a
un no se cuenta con un control de administraci
on y

seguridad sobre las sesiones de Internet, lo cual provoca que los estudiantes puedan acceder y
descargar cualquier tipo de contenido o informaci
on.
Esto provoca que cuando un profesor esta impartiendo clase, la mayora de los estudiantes
pierden el interes del curso al preferir navegar en la red, lo que provoca un deficit en el proceso
de ense
nanza-aprendizaje y en el uso adecuado del Internet.
Por esta raz
on este proyecto de investigaci
on y desarrollo esta orientado hacia la administraci
on de sesiones en Internet mediante filtros1 y el uso de un servidor bajo ambiente
Linux, todo ello orientado a mejorar los procesos de ense
nanza-aprendizaje de la Universidad Aut
onoma de Zacatecas Campus Jalpa; dentro de las pretensiones del proyecto se quiere
generar en el campus universitario la cultura del uso adecuado de las herramientas de Internet
y al mismo tiempo restringir y registrar actos que denigren la imagen de la instituci
on.
Justificaci
on
Algunas de las conveniencias para montar un servidor Squid2 en Linux como software
libre, son:
Usar el sistema operativo con cualquier prop
osito.
Estudiar y adecuar su funcionamiento.
1 Un

filtro, es un programa o conjunto de estos, que procesan una serie de datos generando una salida

modificada conforme a lo que se especifique.


2 Squid, es un servidor que permite utilizar una sola conexi
on a Internet para todas las estaciones de los
centros de acceso para la navegaci
on en Internet.

1.3. PROPUESTA DE TESIS

Redistribuci
on.
Mejorar el programa y hacer publicas las mejoras.
En virtud de que la mayora de los sistemas de monitoreo y control de PCs (Personal Computers, Computadoras Personales) son creados bajo el Sistema Operativo Windows, el montar
un servidor Squid de Linux para el control y monitoreo de sesiones de Internet repercutir
a en
el aprendizaje de nuevas tecnologas que traer
an beneficios a los usuarios finales.

1.3

Propuesta de tesis
Montar un servidor Squid en conjunto con las herramientas SARG, ClamAv, progra-

macion en PHP, para controlar y monitorear el tr


afico de Internet en la Universidad Aut
onoma
de Zacatecas Campus Jalpa.

1.4

Metodologa

Objetivos especficos
Analizar los requerimientos de Fedora Core 4 Linux.
Instalar Fedora Core 4 de Linux.
Conocer el ambiente Linux.
Conocer la programaci
on en Fedora Core 4 de Linux.
Utilizar PHP como lenguaje y herramienta de programaci
on.
Montar un servidor Squid.
Otorgar permisos a cada grupo de usuarios.
Administrador.
Control total sobre computadoras y sesiones.
Privilegiados.
Control sobre computadoras.
Alumnos.


CAPITULO 1. INTRODUCCION

6
Ning
un control, solo acceso.
Monitoreo y control.

Reporte(s) de acceso de sesi


on(es): (Aplicaciones/ Herramientas/ Programaci
on:
Squid, SARG, ClamAV, Scripts, Sql)
Top p
aginas accesadas.
Top acceso sesiones.
Sitios y sesiones.
Download.
Tiempo de conexi
on.
Sitios denegados.
Ancho de banda utilizado.
Autenticaciones fallidas a sitios web.
P
aginas accesadas que contengan virus.
Control del ancho de banda de las sesiones.
Control de acceso a mensajeros instant
aneos a traves de su n
umero de puerto.
Control de clientes a traves de direccionamiento est
atico.
Control de sesiones.
Control de sitios de Internet.

1.5

Descripci
on de tesis
En el captulo 2 se da una descripci
on sobre los elementos te
orico-b
asicos relacionados

con el tema de tesis, as como una definici


on de software libre y sus diferencias con respecto
al software comercial o del dominio p
ublico. Se define tambien el sistema operativo Linux, sus
caractersticas, las distribuciones con las que cuenta y las herramientas que proporciona para
la administraci
on y monitoreo de redes. Adem
as se tratan conceptos b
asicos de redes como
por ejemplo: red de area local, ventajas, componentes, topologas, administraci
on, seguridad,
etc. Se abordan tambien temas sobre servidores, como: tipos, caractersticas, funciones, Internet, etc. Y por u
ltimo se tocan temas de programaci
on como: lenguaje de programaci
on,
clasificaci
on, bases de datos, etc.

DE TESIS
1.5. DESCRIPCION

En el Captulo 3 se da una explicaci


on del trabajo llevado a cabo, es decir, todo el
desarrollo del trabajo experimental, comenzando por la instalaci
on del sistema operativo y
configuraci
on del mismo, instalaci
on y configuraci
on de las tarjetas de red, la configuraci
on de
algunos servicios de red como son el apache, iptables, MySQL, la conexi
on del servidor con
la red local, instalaci
on y configuraci
on de las herramientas necesarias como son NocatAuth,
Webmin, Squid, el dise
no PHP y la configuraci
on de Squid.
En el Captulo 4 se muestra los resultados obtenidos despues del desarrollo, implantaci
on
y verificaci
on del funcionamiento del sistema operativo, la distribuci
on y las herramientas de
red utilizadas, entre otras cosas.
En el Captulo 5 se muestra las conclusiones obtenidas a partir de los objetivos planteados
en el protocolo de tesis.

CAPITULO 1. INTRODUCCION

Captulo 2

Fundamentos te
oricos
2.1

Software libre
Software libre [1], es el software que, una vez obtenido, puede ser usado, copiado, estu-

diado, modificado y redistribuido libremente. El software libre suele estar disponible gratuitamente en Internet, o a precio de costo de la distribuci
on a traves de otros medios; sin embargo no
es obligatorio que sea as y, aunque conserve su car
acter de libre, puede ser vendido comercialmente. An
alogamente, el software gratuito denominado usualmente freeware incluye en algunas
ocasiones el c
odigo fuente; sin embargo, este tipo de software no es libre en el mismo sentido
que el software libre, al menos que se garanticen los derechos de modificacion y redistribuci
on
de dichas versiones modificadas del programa.

No debe confundirse software libre con software del dominio p


ublico. Este
u
ltimo es aquel
por el que no es necesario solicitar licencia alguna y cuyos derechos de explotaci
on son para
todos los usuarios por igual. Cualesquiera puede hacer uso de el, siempre con fines legales y
consignando su autora original. Este software sera aquel cuyo autor lo cede los derechos en
beneficio de la humanidad, o cuyos derechos de autor han expirado. Si un autor condiciona su
uso bajo una licencia, por muy debil que sea, ya no es del dominio p
ublico. En resumen, el
software de dominio p
ublico es la definici
on pura de la libertad de usufracto de una propiedad
intelectual que tiene la humanidad porque as lo ha decidido su autor o la ley tras un plazo
contado desde la muerte de este, habitualmente 70 a
nos.
9


CAPITULO 2. FUNDAMENTOS TEORICOS

10

2.2

Sistema operativo Linux


Linux, es un sistema operativo compatible con el sistema operativo Unix. Dos carac-

tersticas muy peculiares lo diferencan del resto de los sistemas operativos que se pueden
encontrar en el mercado; la primera, es que es libre, esto significa que no se deben de pagar
licencias a ninguna empresa desarrolladora de software por el uso del mismo, la segunda, es que
el sistema operativo parte de su c
odigo fuente.

Linux se distribuye bajo la GNU [2] (General Public License, Licencia P


ublica General)
por lo tanto, el c
odigo fuente tiene que estar siempre accesible y cualquier modificaci
on o trabajo
derivado tiene que contar con esta licencia.

Linux es un sistema de tipo UNIX, y por tanto, posee las caractersticas tpicas de los
sistemas UNIX. Se trata de un sistema multiusuario y multitarea de prop
osito general. Algunas
de sus caractersticas especficas m
as relevantes son las siguientes:
Cuenta con un c
odigo independiente del procesador en la medida de lo posible. Aunque
inicialmente se desarroll
o para procesadores Intel, se ha transportado a otras arquitecturas
con un esfuerzo relativamente peque
no.
Se puede adaptar a computadoras de muy diversas caractersticas. Como el desarrollo
inicial se realiz
o en computadoras con recursos limitados, ha resultado un sistema que
puede trabajar en computadoras con prestaciones muy diferentes.
Permite incluir de forma din
amica nuevas funcionalidades al n
ucleo del sistema operativo
gracias al mecanismo de los m
odulos.
Proporciona soporte para una gran variedad de tipos de sistemas de archivos, entre ellos
los utilizados en Windows.
Es capaz de manejar distintos formatos de archivos ejecutables.
Proporciona soporte para multiprocesadores utilizando un esquema de multiproceso simetrico.
Para aprovechar al m
aximo el paralelismo del hardware, se ha ido modificando progresivamente el n
ucleo con el objetivo de aumentar su concurrencia interna.

2.2. SISTEMA OPERATIVO LINUX

11

En cuanto a la estructura de Linux, tiene una organizaci


on monoltica, al igual que ocurre
con la mayora de las implementaciones de UNIX. A pesar de este car
acter monoltico, el n
ucleo
no es algo est
atico y cerrado, sino por el contrario se pueden a
nadir y quitar m
odulos de c
odigo
en tiempo de ejecuci
on, se trata de un mecanismo similar al de las bibliotecas din
amicas pero
aplicado al propio sistema operativo, se pueden a
nadir m
odulos que corresponden con nuevos
tipos de sistemas de archivos, nuevos manejadores de dispositivos o gestores de nuevos formatos
ejecutables.
Un sistema Linux completo no s
olo est
a formado por el n
ucleo monoltico, sino tambien
incluye programas y bibliotecas del sistema.
Debido a las dificultades que hay para instalar y configurar el sistema, existen diversas
distribuciones de Linux que incluyen el n
ucleo, los programas y las bibliotecas del sistema, as
como un conjunto de herramientas de instalaci
on y configuraci
on que facilitan considerablemente esta ardua labor[3].
Distribuciones Linux
Una distribuci
on Linux, es un conjunto de aplicaciones reunidas que permiten brindar
mejoras para instalar f
acilmente un sistema Linux. Son presentaciones de Linux que, en lo
general, se destacan por las herramientas para configuraci
on y sistemas de paquetes de software
a instalar.
Existen numerosas distribuciones Linux, cada una de ellas puede incluir cualquier n
umero
de software adicional, como algunos que facilitan la instalaci
on del sistema y una gran variedad
de aplicaciones, entre ellos, entornos gr
aficos, suites ofim
aticas, servidores de Internet, servidores
de correo, etcetera.
Distribuciones:
Debian.
Red Hat Linux.
Suse.
Fedora.


CAPITULO 2. FUNDAMENTOS TEORICOS

12
Ubuntu.
Rxart.
Slackware.
Mandrivia.
Knoppix.
Gentoo.
Herramientas de red

PAM (Pluggable Authentication Module, Modulos de Autenticaci


on Conectables)
Los m
odulos de autenticaci
on conectables, permiten al administrador utilizar esquemas
de autentificaci
on com
un que se pueden usar con una gran variedad de aplicaciones, haciendo
el proceso de verificaci
on de usuarios m
as sencillo y transparente.
Kerberos
Kerberos era el perro de tres cabezas de la mitologa griega que representaba seguridad, por
ser quien cuidaba las puertas del infierno. Este es un servicio que tiene por objetivo principal
proporcionar un sistema de autenticaci
on entre clientes y servidores que evite que las contrase
nas
de los usuarios viajen continuamente por la red.
Tripwire
Tripwire puede ayudar a asegurar la integridad de ficheros y directorios de sistemas esenciales identificando todos los cambios hechos a ellos. El uso de Tripwire para detectar intromisiones y fijar da
nos, ayuda a mantener al tanto de los cambios que sufre el sistema al
administrador. Compara los ficheros y directorios con la ubicaci
on real de los mismos en una
base de datos, las fechas en que han sido modificados, entre otros datos.
SSH
SSH (Secure SHell, Shell Seguro) es un protocolo para crear conexiones seguras entre
dos sistemas. Usando SSH, la computadora del cliente inicia una conexi
on segura con un
servidor, ya que la informaci
on es cifrada. El cliente puede verificar que se esta conectando al


2.3. RED DE AREA
LOCAL

13

mismo servidor durante sesiones posteriores. SSH hace relativamente sencilla la tarea de cifrar
diferentes tipos de comunicaci
on, que normalmente se enva en modo inseguro a traves de redes
p
ublicas.
Apache
La combinaci
on del servidor apache con el m
odulo de seguridad de SSL (Secure Socket
Layer, Capa de Conexiones Seguras), libreras y el kit de herramientas OpenSSL proporcionados
por Red Hat Linux, es lo que se conoce como Servidor de Web Seguro (Secure Web Server).
Este servidor incluye el OpenSSL Project [4], un kit de herramientas que implementa los
protocolos SSL y TLS (Transport Layer Secure, Capa de Transporte Segura), as como una
librera de codificaci
on de prop
osito general. El protocolo SSL se usa actualmente para la
transmisi
on de datos seguros sobre Internet, el protocolo TLS es un est
andar de Internet para
comunicaciones privadas y fiables a traves de Internet.
Squid
Squid es un servidor que permite utilizar una sola conexi
on a Internet para todas las
estaciones de los centros de acceso para la navegaci
on por Internet, siendo confiable, robusto
y vers
atil. Al ser software libre, su c
odigo fuente esta disponible y libre del pago de costosas
licencias por uso o con restricci
on a un uso con determinado n
umero de usuarios.
Beneficios:
Acceso transparente a Internet, por medio de cualquier programa, y a cualquier servicio.
Posibilidad de un control absoluto de los accesos a Internet, por fecha, hora, lugar, e
incluso persona.
Capacidad de control de p
aginas prohibidas.

2.3

Red de
area local

Una LAN (Local Area Network, Red de Area


Local) se define como aquella red que sirve

para interconectar equipos en una misma area y que no utiliza medios de telecomunicaciones
externos. Como su nombre lo indica; su ambito es limitado, aunque no por ello, no pueda llegar


CAPITULO 2. FUNDAMENTOS TEORICOS

14

a ser una red compleja, su uso mas com


un suele ser la interconexi
on de los equipos de una
oficina, una planta o un edificio[6].
El termino red local incluye tanto el hardware como el software necesarios para la interconexi
on de los distintos dispositivos y el tratamiento de la informaci
on.
En fechas anteriores a las computadoras personales, una empresa poda tener solamente
una computadora central, accediendo los usuarios a esta va terminales de la computadora sobre
un cable simple de baja velocidad. Las primeras LAN fueron creadas al final de 1970 y se solan
crear lneas de alta velocidad para conectar grandes computadoras centrales a un solo lugar.
El crecimiento basado en las computadoras personales signific
o que en un lugar fsico
existieran docenas o incluso cientos de computadoras. La intenci
on inicial de conectar estas
computadoras fue, generalmente compartir espacio de disco e impresoras l
aser, tales recursos
eran muy caros en este tiempo. Haba muchas expectativas sobre este tema desde 1983 y la
industria inform
atica declar
o que el siguiente a
no sera el a
no de las LAN.
Pero esta idea se vino abajo debido a la proliferaci
on de las incompatibilidades de la capa
fsica, la implantaci
on del protocolo de red y confusi
on sobre la mejor forma de compartir los
recursos. Lo normal era que cada vendedor tuviera tarjeta de red, cableado, protocolo y sistema
de operaci
on de red. Con la aparici
on de Netware surgi
o una nueva soluci
on, la cual ofreca:
soporte imparcial para los 40 o m
as tipos que existan de tarjetas, cables y sistemas operativos
mucho mas sofisticados que los ofrecidos por la mayora de los competidores. Netware dominaba
el campo de las LAN de las computadoras personales desde antes de su introducci
on en 1983
hasta mediados de los a
nos 90s, cuando Microsoft introdujo Windows NT Advance Server y
Windows for Workgroups.
Ventajas
En una empresa suelen existir muchas computadoras, las cuales necesitan de su propia
impresora para estampar informes (redundancia de hardware), los datos almacenados en uno de
los equipos pueden ser necesarios en otro de los equipos de la empresa, por lo que ser
a necesario
copiarlos en este u
ltimo, pudiendo producirse desfases entre los datos de un usuario o los de otro,
la ocupaci
on de los recursos de almacenamiento en disco se multiplican (redundancia de datos),
las computadoras que trabajen con los mismos datos tendr
an que tener programas iguales para


2.3. RED DE AREA
LOCAL

15

manejar dichos datos (redundancia de software). La soluci


on a estos problemas se llama red
de area local. La LAN permite compartir bases de datos (se elimina la redundancia de datos),
programas (se elimina la redundancia de software) y perifericos como puede ser un m
odem, una
tarjeta RDSI (Red Digital de Servicios Integrados), una impresora (se elimina la redundancia
de hardware); poniendo a disposici
on otros medios de comunicaci
on como pueden ser el correo
electr
onico y el chat. Permite realizar un proceso distribuido, es decir, las tareas se pueden
repartir en distintas computadoras y permite la integraci
on de los procesos y datos de cada
uno de los usuarios en un sistema de trabajo corporativo, tener la posibilidad de centralizar
informaci
on o procedimientos, facilita la administraci
on y la gesti
on de los equipos. Adem
as
una LAN conlleva un importante ahorro, tanto de dinero como de tiempo, ya que no es necesario
comprar demasiados perifericos y se puede utilizar una sola conexi
on telef
onica, compartida por
varias computadoras conectadas en red; adem
as se logra gesti
on de la informaci
on y del trabajo
ahorrando tiempo.
El objetivo principal de una LAN es permitir la intercomunicaci
on de computadoras.
Caractersticas
Tecnologa broadcast (difusi
on) con el medio de transmisi
on compartido.
Cableado especfico instalado normalmente a prop
osito.
Capacidad de transmisi
on comprendida entre 1 Mbps y 1 Gbps.
Extensi
on m
axima no superior a 3 kms.
Uso de un medio de comunicaci
on privado.
La simplicidad del medio de transmisi
on que utiliza.
La facilidad con que se pueden efectuar cambios en el hardware y el software.
Gran variedad y n
umero de dispositivos conectados.
Posibilidad de conexi
on con otras redes.
Topologa de red
La topologa de red define la estructura de una red. Una parte de la definici
on topol
ogica,
es la topologa fsica, que es la disposici
on real de los cables o medios. La otra parte es la


CAPITULO 2. FUNDAMENTOS TEORICOS

16

topologa l
ogica, que define la forma en que las computadoras acceden a los medios para enviar
datos. Las topologas m
as comunes son las siguientes:

Topologas fsicas
Una topologa de bus usa un solo cable backbone que debe terminarse en ambos extremos.
Todas las computadoras se conectan directamente a este backbone.
La topologa de anillo conecta una computadora con la siguiente y a la u
ltima computadora
con la primera. Esto crea un anillo fsico de cable.
La topologa en estrella conecta todos los cables con un punto central de concentraci
on.
Una topologa en estrella extendida conecta estrellas individuales entre s mediante la
conexi
on de hubs o switches. Esta topologa puede extender el alcance y la cobertura de
la red.
Una topologa jer
arquica es similar a una estrella extendida, pero en lugar de conectar
los hubs o switches entre s, el sistema se conecta con una computadora que controla el
tr
afico de la topologa.
La topologa de malla se implementa para proporcionar la mayor protecci
on posible para
evitar una interrupci
on del servicio.

Topologas l
ogicas
La topologa l
ogica de una red es la forma en que las computadoras se comunican a traves
del medio de transmisi
on. Los dos tipos m
as comunes de topologas l
ogicas son broadcast y
transmisi
on de tokens.
La topologa broadcast simplemente significa que cada computadora enva sus datos hacia
todas las dem
as computadoras del medio de red. No existe un orden que las computadoras
deban seguir para utilizar la red. Es por orden de llegada, es como funciona Ethernet.
La topologa de transmisi
on de tokens controla el acceso a la red mediante la transmisi
on
de un token electr
onico a cada computadora de forma secuencial. Cuando una computadora recibe el token, esa computadora puede enviar datos a traves de la red. Si la


2.3. RED DE AREA
LOCAL

17

computadora no tiene ning


un dato para enviar, transmite el token a la siguiente computadora y el proceso se vuelve a repetir. Dos ejemplos de redes que utilizan la transmisi
on
de tokens son Token Ring y FDDI (Interfaz de datos distribuida por fibra).

Componentes
Servidor: el servidor es una o varias computadoras que van a compartir sus recursos
hardware y software con los dem
as equipos de la red. Sus caractersticas son potencia de
c
alculo, importancia de la informaci
on que almacena y conexi
on con recursos que se desean
compartir.

Estaci
on de trabajo: los equipos que toman el papel de computadora cliente aprovechan
o tienen a su disposici
on los recursos que ofrece la red, as como los servicios que proporcionan
los servidores a los cuales pueden acceder.

Puerta de enlace o pasarelas: es un hardware y software que permite las comunicaciones


entre la red local y grandes computadoras (mainframes). La puerta de enlace adapta los
protocolos de comunicaci
on del mainframe a los de la red, y viceversa.

Bridge o puente: es un hardware y software que permite que se conecten dos LAN entre
s. Un puente interno es el que se instala en un servidor de la red, y un puente externo es el
que se hace sobre una computadora de la misma red. Los puentes tambien pueden ser locales
o remotos. Los puentes locales son los que conectan a redes de un mismo edificio, usando
tanto conexiones internas como externas. Los puentes remotos conectan redes distintas entre
s, llevando a cabo la conexi
on a traves de redes p
ublicas, como la red telef
onica, RDSI o red
de conmutaci
on de paquetes.

Tarjeta de red: tambien se denominan NIC (Network Interface Card, Tarjeta de Interfaz de Red), b
asicamente realiza la funci
on de intermediario entre la computadora y la red de
comunicaci
on. En ella se encuentran grabados los protocolos de comunicaci
on de la red. La comunicaci
on con la computadora se realiza normalmente a traves de las ranuras de expansi
on que
esta dispone, ya sea ISA (Industry Standard Architecture, Arquitectura Est
andar Industrial),
PCMCIA (Personal Computer Memory Card International Association, Asociaci
on Internacional de Tarjetas de Memoria para Computadoras Personales) o PCI (Peripheral Component


CAPITULO 2. FUNDAMENTOS TEORICOS

18

Interconnect, Interconexi
on de Componentes Perifericos). Aunque algunos equipos disponen de
este adaptador integrado directamente en la placa base.
El medio: constituido por el cableado y los conectores que enlazan los componentes de
la red. Los medios fsicos m
as utilizados son el cable de par trenzado, cable coaxial y la fibra
optica.
Concentradores de cableado: una LAN en bus usa solamente tarjetas de red en las estaciones y cableado coaxial para interconectarlas, adem
as de los conectores; sin embargo, este
metodo complica el mantenimiento de la red ya que si falla alguna conexi
on, toda la red deja
de funcionar. Para impedir este tipo de problemas las LAN usan concentradores de cableado
para realizar las conexiones de las computadoras, el concentrador las centraliza en un u
nico dispositivo manteniendo indicadores luminosos de su estado e impidiendo que una de ellas pueda
hacer fallar toda la red.
Existen dos tipos de concentradores de cableado:
1. Concentradores pasivos: act
uan como un simple concentrador cuya funci
on principal consiste
en interconectar toda la red.
2. Concentradores activos: adem
as de su funci
on b
asica de concentrador tambien amplifican y
regeneran las se
nales recibidas antes de ser enviadas.
Los concentradores de cableado tienen dos tipos de conexiones: para las estaciones y
para unirse a otros concentradores y as aumentar el tama
no de la red. Los concentradores de
cableado se clasifican dependiendo de la manera en que internamente realizan las conexiones y
distribuyen los mensajes.

2.4

Administraci
on de redes
La administraci
on de redes [7] abarca un amplio n
umero de cuestiones. En general, se

suelen tratar con muchos datos estadsticos e informaci


on sobre el estado de distintas partes de
la red, y se realizan las acciones necesarias para ocuparse de fallos y otros cambios. La tecnica
mas primitiva para la monitorizaci
on de una red es hacer pinging a las computadoras crticas; el
pinging se basa en un datagrama de eco, que es un tipo de datagrama que produce una replica
inmediata cuando llega al destino. La mayora de las implementaciones TCP (Transfer Control

DE REDES
2.4. ADMINISTRACION

19

Protocol, Protocolo de Control de Transmisi


on)/IP(Internet Protocol, Protocolo de Internet)
incluyen un programa (generalmente, llamado ping) que enva un eco a una computadora en
concreto. Si se recibe la replica, se sabr
a que la computadora se encuentra activa, y que la red
que los conecta funciona; en caso contrario, se estar
a al tanto que hay alg
un error. Se puede
normalmente conocer que ocurre en la red, mediante pinging a un razonable n
umero de computadoras. Si los ping a todas las computadoras de una red no dan respuesta, es l
ogico concluir
que la conexi
on a dicha red, o la propia red, no funciona. Si s
olo una de las computadoras
no da respuesta, pero las dem
as de la misma red responden, es razonable concluir que dicha
computadora no funciona.
Tecnicas m
as sofisticadas de monitorizaci
on necesitan conocer informaci
on estadstica y
el estado de varios dispositivos de la red. Para ello necesitar
a llevar la cuenta de varias clases de
datagramas, as como de errores de varios tipos. Este tipo de informaci
on ser
a m
as detallada en
las puertas de enlace, puesto que la puerta de enlace clasifica los datagramas seg
un protocolos e,
incluso, ella misma responde a ciertos tipos de datagramas. Sin embargo, los puentes e incluso
los repetidores con buffer contabilizan los datagramas reenviados y errores de interface, siendo
posible recopilar toda esta informaci
on en un punto de monitorizaci
on central.
Tambien hay un enfoque oficial TCP/IP para llevar a cabo la monitorizaci
on. En la
primera fase, se usa un conjunto de protocolos SGMP (Simple Gateway Monitoring Protocol,
Protocolo Simple de Monitoreo de Frontera) y SNMP (Simple Network Management Protocol,
Protocolo Simple de Administraci
on de Red), ambos dise
nados para recoger informaci
on y
cambiar los par
ametros de la configuraci
on y otras entidades de la red. Se pueden ejecutar los
correpondientes programas en cualquier computadora de la red. SGMP est
a disponible para
varias puertas de enlace comerciales, as como para sistemas Unix que act
uan como puerta de
enlace. Cualquier implementaci
on SGMP necesita que se proporcione un conjunto de datos
para que pueda empezar a funcionar, y tienen mecanismos para ir a
nadiendo informaciones
que varan de un dispositivo a otro. A finales de 1988 apareci
o una segunda generaci
on de
este protocolo, SNMP, que es ligeramente m
as sofisticado y necesita m
as informaci
on para
trabajar y, para ello, usa el llamado MIB (Management Information Base). En lugar de usar
una colecci
on de variable SNMP, el MIB es el resultado de numerosas reuniones de comites
formados por vendedores y usuarios.
En terminos generales, todos estos protocolos persiguen el mismo objetivo: permitir


CAPITULO 2. FUNDAMENTOS TEORICOS

20

recoger informaci
on crtica de una forma estandarizada. Se ordena la emisi
on de datagramas UDP (User Datagram Protocol, Protocolo de Datagramas de Usuario) desde un programa
de administraci
on de redes que se encuentra ejecutando en alguna de las computadoras de red.
Generalmente, la interacci
on es bastante simple, con el intercambio de un par de datagramas:
una orden y una respuesta. El mecanismo de seguridad tambien es bastante simple, siendo
posible que se incluyan contrase
nas en las ordenes. Tambien existen mecanismos de seguridad
mas elaborados, basados en la criptografa.
Probablemente se quiera configurar la administraci
on de la red con las herramientas que
se tienen a disposici
on para controlar diversas actividades. Para redes con pocas terminales,
se quieren controlar cuando los dispositivos de conmutaci
on fallan, esten fuera de servicio por
mantenimiento y cuando haya fallos en las lneas de comunicaci
on u otro hardware. Es posible
configurar SGMP y SNMP para que usen trap (mensajes no solicitados) para una computadora en particular o para una lista de computadoras cuando ocurre un evento crtico (por
ejemplo, lneas activas o desactivas). No obstante, no es realista esperar que un dispositivo de
conmutaci
on nos notifique cuando falla. Tambien es posible que los mensajes trap se pierdan
por un fallo en la red, o por sobrecarga, as que no se puede depender completamente de los
traps. No obstante, es conveniente que los dispositivos de conmutaci
on re
unan regularmente
este tipo de informaci
on. Hay varias herramientas que visualizan un mapa de la red, donde los
objetos cambian de color cuando cambian de estado, y hay cuadros que muestran estadsticas
sobre los datagramas y otros objetos.
Otro tipo de monitorizaci
on deseable es recolectar informaci
on para hacer informes peri
odicos
del porcentaje de uso de la red y prestaciones. Para ello, se necesita analizar cada dispositivo
de conmutaci
on y solo tomar los datos de interes.
Sera posible que cualquier tipo de conmutador pudiese usar cualquier tipo de tecnica
de monitorizaci
on, sin embargo, generalmente los repetidores no proporcionan ning
un tipo de
estadstica, debido a que normalmente no tienen ning
un procesador para abaratar su precio.
Por otro lado, es posible usar un software de administraci
on de redes con repetidores con buffer,
puentes y puertas de enlace. Las puertas de enlace, en la mayora de los casos, incluyen un
avanzado software de administraci
on de redes, adem
as pueden manejar IP y los protocolos
de monitorizaci
on anteriormente mencionados y la mayora de los puentes tienen medios para
poder recoger algunos datos de prestaciones. Puesto que los puentes no est
an dirigidos a ning
un

2.5. SEGURIDAD EN REDES

21

protocolo en particular, la mayora de ellos no tienen el software necesario para implementar los
protocolos TCP/IP de administraci
on de redes. En algunas ocasiones, la monitorizaci
on puede
hacerse tecleando algunos comandos a una consola a la que este directamente conectada, en los
restantes casos, es posible recoger datos a traves de la red, pero el protocolo requerido no suele
ser ning
un est
andar.

Excepto para algunas peque


nas redes, se debe insistir en que cualquier dispositivo conmutador m
as complejo que un simple repetidor sea capaz de recolectar estadsticas y alg
un
mecanismo para trabajar con ellas de forma remota. Aquellas partes de la red que no soporten
dichas operaciones pueden monitorizarse mediante pinging.

2.5

Seguridad en redes
Las redes de comunicaciones p
ublicas tradicionalmente no han sido seguras, en el sentido

de proporcionar niveles elevados de seguridad a la informaci


on que se est
a transmitiendo. Como
estas redes se est
an utilizando cada vez m
as para transacciones comerciales, la necesidad de
proporcionar seguridad est
a llegando a ser crtica[17].

Cortafuegos
Un cortafuegos [8] es un dispositivo que permite o restringe las transmisiones de una red
a otra. Un uso tpico es situarlo entre una LAN y la red Internet, como dispositivo de seguridad
para evitar que los intrusos puedan acceder a informaci
on confidencial.
Un cortafuegos es simplemente un filtro que controla todas las comunicaciones que pasan
de una red a la otra y en funci
on de lo que se permite o deniega a su paso. Para permitir o
denegar una comunicaci
on el cortafuegos examina el tipo de servicio al que corresponde, como
pueden ser el Internet o el correo. Dependiendo del servicio el cortafuegos decide si lo permite
o no, adem
as, el cortafuegos examina si la comunicaci
on es entrante o saliente y dependiendo
de su direcci
on puede permitirla o no.
De este modo un cortafuegos puede permitir desde una LAN hacia Internet servicios de
web, correo, ftp, etc. Tambien se pueden configurar los accesos que se hagan desde Internet
hacia la LAN y se pueden denegar todos o permitir algunos servicios como el de Internet.


CAPITULO 2. FUNDAMENTOS TEORICOS

22

Dependiendo del cortafuegos que se tenga tambien se podr


a permitir algunos accesos a la LAN
desde Internet si el usuario se ha autentificado como usuario de la LAN.

Un cortafuegos puede ser un dispositivo software o hardware, es decir, un aparato que se


conecta entre la red y el cable de la conexi
on a Internet, o bien un programa que se instala en la
computadora que tiene el modem que conecta con Internet. Incluso se pueden encontrar computadoras muy potentes con software especfico cuya funci
on es monitorizar las comunicaciones
entre redes.

Portales captivos
Un portal cautivo (o captivo) [9] es un programa o computadora de una red inform
atica
que vigila el tr
afico HTTP (Hypertext Transfer Protocol, Protocolo de Transferencia de Hipertexto) y forza a los usuarios a pasar por una p
agina especial si quieren navegar por Internet de
forma normal. A veces esto se hace para pedir una autenticaci
on v
alida, o para informar de las
condiciones de uso de un servicio wireless1 .

Como funcionan? Un portal cautivo se instala en la puerta de enlace de la red, que es


el sitio por donde pasan los usuarios para acceder a Internet. El programa intercepta todo el
tr
afico HTTP hasta que el usuario se autentifique. El portal se encargar
a de hacer que esta
sesion caduque al cabo de un tiempo. Tambien puede empezar a controlar el ancho de banda
usado por cada cliente. Se usan sobre todo en redes inal
ambricas abiertas, donde interesa
mostrar un mensaje de bienvenida a los usuarios y para informar de las condiciones del acceso
(puertos permitidos, responsabilidad legal, etc.).

Nocat
Nocat [10] es un software que permite autenticar el acceso a una red va un portal cautivo,

el cual se utiliza para controlar los accesos a una red. Este


elemento est
a implementado en Perl
y se divide en dos partes: el cortafuegos y el servidor de autenticaci
on. El cortafuegos se encarga
de dar salida a Internet a todas las peticiones de los usuarios de la red, mientras que el servidor
de autenticaci
on se encarga de decidir si un usuario puede o no utilizar la red.
1 Se

denomina Wireless a las comunicaciones inal


ambricas, en las que se utilizan modulaci
on de ondas elec-

tromagn
eticas, radiaciones o medios o
pticos.

23

2.5. SEGURIDAD EN REDES


Iptables
Iptables [11] es un sistema de cortafuegos vinculado al kernel

de Linux que se ha ex-

tendido enormemente a partir del kernel 2.4 de este sistema operativo. Al igual que el sistema
ipchains, un cortafuegos de iptables no es como un servidor que se inicia o se detiene, iptables
esta integrado con el kernel, es parte del sistema operativo. Para ponerlo en marcha se aplican reglas, para ello se ejecuta el comando iptables, con el que se a
naden, borran, o se crean
reglas, por ello un cortafuegos de iptables no es sino un simple script de shell 3 en el que se van
ejecutando las reglas de cortafuegos.

Notas: se puede implementar un script de inicio en /etc/rc.d/INIT.d (o /etc/INIT.d )


con el que se haga que iptables se inicie o pare como un servidor m
as, tambien se pueden
salvar las reglas aplicadas con el comando iptables-save en un fichero y gestionar ese fichero con
una aplicaci
on.

Una computadora Linux con soporte para iptables, tiene reglas aplicadas, cuando comienzan a llegar, pasar y salir paquetes, actuan las reglas del cortafuegos que est
an a nivel de kernel,
cuando el kernel recibe un paquete, consulta las reglas de cortafuegos y decide que hacer con
el.
Este es el camino que seguira un paquete en el kernel:

Para los paquetes (o datagramas, seg


un el protocolo) que van a la propia computadora
se aplican las reglas INPUT y OUTPUT, y para filtrar paquetes que van a otras redes o
computadoras se aplican simplemente reglas FORWARD, INPUT, OUTPUT y FORWARD
que son los tres tipos de reglas de filtrado. Antes de aplicar esas reglas es posible aplicar reglas
de NAT, estas se usan para hacer redirecciones de puertos o cambios en las direcciones ip de
origen y destino, incluso antes de las reglas de NAT se pueden asignar reglas de tipo MANGLE,
destinadas a modificar los paquetes, estas son reglas poco conocidas y es probable que no las
usen.
2 En

inform
atica, el n
ucleo es la parte fundamental de un sistema operativo. Es el software responsable de

facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma m


as b
asica, es el
encargado de gestionar recursos, a trav
es de servicios de llamada al sistema.
3 Es un programa inform
atico lector de lneas de texto que un usuario de una computadora ha predefinido y
este programa lo interpreta para un sistema operativo o lenguaje de programaci
on.


CAPITULO 2. FUNDAMENTOS TEORICOS

24

Por tanto tenemos tres tipos de reglas en iptables:


- MANGLE
- NAT: reglas PREROUTING, POSTROUTING
- FILTER: reglas INPUT,OUTPUT, FORWARD.
Encriptaci
on
Encriptaci
on [12] es el proceso mediante el cual cierta informaci
on o texto sin formato es
cifrado de forma que el resultado sea ilegible a menos que se conozcan los datos necesarios para
su interpretaci
on. Es una medida de seguridad utilizada para que al momento de almacenar
o transmitir informaci
on sensible, esta no pueda ser obtenida con facilidad por terceros. Opcionalmente puede existir adem
as un proceso de desencriptaci
on a traves del cu
al la informaci
on
puede ser interpretada de nuevo a su estado original, aunque existen metodos de encriptaci
on
que no pueden ser revertidos.
Algunos de los usos m
as comunes de la encriptaci
on son el almacenamiento y transmisi
on
de informaci
on sensible como contrase
nas, n
umeros de identificaci
on legal, n
umeros de tarjetas
de credito, reportes administrativo-contables y conversaciones privadas, entre otros.
La encriptaci
on hace uso de diversas f
ormulas matem
aticas con el prop
osito de transformar
el texto sin formato en un criptograma, el cual es un conjunto de caracteres que a simple vista
no tiene ning
un sentido para el lector. La mayora de los metodos de encriptaci
on utilizan una
clave como par
ametro variable en las mencionadas f
ormulas matem
aticas, de forma que a pesar
de que un intruso las conozca, no le sea posible descifrar el criptograma si no conoce la clave,
la cual solo se encuentra en posesi
on de las personas que pueden tener acceso a la informaci
on
en cuestion. Algunos metodos utilizan incluso dos claves, una privada que se utiliza para la
encriptacion y otra p
ublica para la desencriptaci
on. En algunos metodos la clave p
ublica no
puede efectuar la desencriptaci
on o descifrado, sino solamente comprobar que el criptograma fue
encriptado o cifrado usando la clave privada correspondiente y no ha sido alterado o modificado
desde entonces.
Aunque la criptologa surgi
o con gran anterioridad, la inform
atica ha revolucionado los
metodos que se utilizan para la encriptaci
on/desencriptaci
on de informaci
on, debido a la velocidad con que las computadoras pueden realizar las f
ormulas matem
aticas requeridas para llevar
a cabo estos metodos y a la complejidad que han alcanzado debido a este hecho.

2.6. SERVIDORES

2.6

25

Servidores
Un servidor [13] es una aplicaci
on inform
atica o programa que realiza algunas tareas en

beneficio de las aplicaciones de los clientes. Algunos servicios habituales son, los servicios de
archivos, que permiten a los usuarios almacenar y acceder a los archivos de una computadora,
y los servicios de aplicaciones, que realizan tareas en beneficio directo del usuario final. Es
posible que una computadora cumpla simult
aneamente las funciones de cliente y de servidor.
Un servidor es tambien, la computadora en la que se ejecuta un programa que realiza
alguna tarea en beneficio de otra aplicaci
on llamada cliente, la cual puede ser una computadora
central (mainframe), una minicomputadora, una computadora personal, o un sistema integrado;
sin embargo, hay computadoras destinadas u
nicamente a proveer servicios a ciertos tipos de
programas, estos son los servidores por antonomasia.
Un servidor no es necesariamente una computadora de u
ltima generaci
on como una supercomputadora; un servidor puede ir desde una computadora con caractersticas limitadas (microcomputadora), hasta una computadora sumamente potente (supercomputadora). La elecci
on
de algun tipo, estar
a determinado por los procesos y tareas que vaya a realizar.
Un servidor tambien puede ser un proceso que entrega informaci
on o sirve a otro proceso,
el modelo cliente-servidor no necesariamente implica tener dos computadoras, ya que un proceso
cliente puede ser solicitado desde la misma computadoras, tal es el caso de las impresiones.
Tipos de servidores
Plataformas de servidor (Server Platforms): un termino usado a menudo como sin
onimo
de sistema operativo, la plataforma es el hardware o software subyacentes para un sistema, es
decir, el motor que dirige el servidor.
Servidores de aplicaciones (Application Servers): designados en ocaciones como un tipo
de middleware 4 , los servidores de aplicaciones ocupan una gran parte del territorio entre los
4 El

middleware es un software de conectividad que ofrece un conjunto de servicios que hacen posible el

funcionamiento de aplicaciones distribuidas sobre plataformas heterog


eneas. Funciona como capa de abstracci
on
de software distribuida, que se sit
ua entre las capas de aplicaciones y las capas inferiores (sistema operativo y red).
El middleware nos abstrae de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, as
como de los sistemas operativos y lenguajes de programaci
on, proporcionando una API para la f
acil programaci
on


CAPITULO 2. FUNDAMENTOS TEORICOS

26
servidores de bases de datos y el usuario.

Servidores de audio/video (Audio/Video Servers): los servidores de Audio/Video a


naden
capacidades multimedia a los sitios de Internet permitiendoles mostrar contenido multimedia
en forma de flujo continuo (streaming) desde el servidor.
Servidores de chat (Chat Servers): los servidores de chat permiten intercambiar informaci
on a una gran cantidad de usuarios ofreciendo la posibilidad de llevar a cabo discusiones
en tiempo real.
Servidores de fax (Fax Servers): un servidor de fax es una soluci
on ideal para organizaciones que tratan de reducir el uso del telefono pero necesitan enviar documentos por fax.
Servidores FTP (File Transfer Protocol Servers): uno de los servicios m
as antiguos de
Internet, FTP permite mover uno o m
as archivos.
Servidores Groupware (Groupware Servers): un servidor groupware es un software dise
nado
para la colaboraci
on entre usuarios, sin importar su localizaci
on, ya sea va Internet o Intranet
a nivel corporativo y poder as trabajar juntos en una atm
osfera virtual.
Servidores IRC (Internet Relay Chat Servers): otra opci
on para usuarios que buscan la
discusi
on en tiempo real, IRC consiste en varias redes de servidores separadas que permite a
los usuarios conectarse va red IRC.
Servidores de listas (List Servers): los servidores de listas ofrecen una mejor manera de
manejar listas de correo electr
onico, bien sean discusiones interactivas abiertas al p
ublico o
listas unidireccionales de anuncios, boletines de noticias o publicidad.
Servidores de correo (Mail Servers): casi tan ubicuos y cruciales como los servidores de
Internet, los servidores de correo mueven y almacenan el correo electr
onico a traves de las redes
corporativas (va LANs y WANs) y a traves de Internet.
y manejo de aplicaciones distribuidas. Dependiendo del problema a resolver y de las funciones necesarias, ser
an
u
tiles diferentes tipo de servicios de middleware. Por lo general el middleware del lado cliente est
a implementado
por el sistema operativo subyacente, el cual posee las libreras que implementan todas las funcionalidades para
la comunicaci
on a trav
es de la red.

2.6. SERVIDORES

27

Figura 2.1: Comparaci


on entre un sistema de archivos y el sistema de nombres de dominio
Servidores de noticias (News Servers): los servidores de noticias act
uan como fuente de
distribuci
on y entrega para los millares de grupos de noticias p
ublicas que existen actualmente
y accesibles a traves de la red de noticias USENET.
Servidores telnet (Telnet Servers): un servidor telnet permite a los usuarios entrar en
una computadora huesped y realizar tareas como si estuviera trabajando directamente en esa
computadora.
Servidores de Internet (Web Servers): b
asicamente, un servidor de Internet provee contenido est
atico a un navegador, carga un archivo y lo sirve a traves de la red al cliente[14].
Servidor de Nombres de Dominio
La historia del DNS (Domain Name Server, Servidor de Nombres de Dominio), se remonta
a la decada de los setenta, donde cada una de las computadoras conectadas a la red tena
asignada una direcci
on numerica (de la misma forma que nuestros telefonos actuales tienen
asignado un n
umero telef
onico). Para acceder a aquellos equipos de c
omputo era necesario
recordar la direcci
on numerica de cada uno, ya que el esquema de nombramiento de aquel
entonces era bastante limitado.
Esta situaci
on trajo como consecuencia la creaci
on de un nuevo sistema de nombramiento,
el cual sera conocido como Sistema de Nombres de Dominio y producira serios problemas 15


CAPITULO 2. FUNDAMENTOS TEORICOS

28

Figura 2.2: Sistema de archivos tradicional


a
nos despues.

Lo que concibi
o su creador, Paul Mockapetris [15], b
asicamente, fue un sistema jer
arquico
similar a un sistema de archivos de computadora. En esta estructura jer
arquica defini
o niveles,
de la misma forma que en un sistema de archivos hay directorios (figura 2.4).

A cada nivel de la estructura le asign


o un nombre o etiqueta. El nivel cero, o raz, no
tiene nombre, el nivel 1 puede ser alguno de los que se muestran en la figura 2.1, .mx, .uk, .com
o .net, el cual se conoce como TLD (Top Level Domain, Dominio de Nivel Superior). A su
vez, estos pueden tener subclasificaciones, como en el caso de .mx que tiene debajo a .com.mx,
.net.mx, .gob.mx, etc. A este nivel se le conoce como SLD (Second Level Domain, Dominio de
Segundo Nivel). M
as sobre esta analoga puede apreciarse en las figuras 2.2 y 2.3

De esta forma, los nombres de dominio se construyen por una secuencia de etiquetas
separadas por un punto, empezando en el nivel m
as profundo hasta llegar al nivel superior.
Por ejemplo, en la figura 2.4, se puede apreciar que el nombre de dominio empresa.com.mx. se
forma desde el u
ltimo nivel llamado empresa, despues el SLD .com y por u
ltimo el TLD .mx.

Las etiquetas pueden tener letras, n


umeros y el gui
on medio, pero no puede iniciar ni
terminar con gui
on. Cada etiqueta puede llevar hasta 63 caracteres, el nombre de dominio en

29

2.6. SERVIDORES

Figura 2.3: Sistema de nombres de dominio

Figura 2.4: Estructura jer


arquica del DNS


CAPITULO 2. FUNDAMENTOS TEORICOS

30

total puede tener hasta 255 (cualquier combinaci


on de letras, n
umeros y gui
on medio). Puede
haber hasta 127 niveles (siempre y cuando no se rebase el lmite de 255 caracteres).
El DNS buscaba un objetivo muy simple, desempe
nar una funci
on tecnica de traducci
on
de nombres de equipos de c
omputo a su direcci
on numerica correspondiente, que fuera conveniente, amigable y f
acil de utilizar por los usuarios de Internet, es decir proveer un esquema de
interpretaci
on entre los usuarios y las computadoras, sin que los primeros tuvieran la necesidad
de recordar las direcciones numericas de cada uno de los equipos a los que intentaban comunicarse; por ejemplo: 131.178.11.16, 200.23.1.7, en lugar de www.mty.itesm.mx y www.nic.mx,
respectivamente.
La realidad es que este esquema, el DNS, cumpli
o con su intenci
on y m
as que eso, los
nombres de dominio no s
olo fueron una manera f
acil para los usuarios de conectarse a los equipos
en la red, sino que adem
as signific
o una manera simple de representar ideas, productos, servicios,
empresas, organismos, etc. El fen
omeno del Internet le aplic
o una aceleraci
on importante al
registro de dominios y pronto vendran los problemas. A partir de este punto, se hizo imposible
dar marcha atr
as a un esquema de nombramiento que empez
o siendo tecnico y gracias a la
comercializaci
on de Internet ese esquema acab
o generando conflictos con esquemas sociales
definidos anteriormente.
Servidor Proxy
Un servidor proxy es un equipo intermediario situado entre el sistema del usuario e Internet. Puede utilizarse para registrar el uso de Internet y tambien para bloquear el acceso a un
sitio de Internet. El servidor de seguridad del proxy bloquea algunas p
aginas de Internet por
diversas razones (por ejemplo: el tipo de contenido).
Ventajas:
Control. S
olo el intermediario hace el trabajo real, por tanto se pueden limitar y restringir
los derechos de los usuarios, y asignar permisos solo al proxy.
Ahorro. Por tanto, s
olo uno de los usuarios (el proxy) ha de estar equipado para hacer el
trabajo real.
Filtrado. El proxy puede negarse a responder algunas peticiones si detecta que est
an
prohibidas.

2.7. INTERNET

31

Desventajas:
Abuso. Al estar dispuesto a recibir peticiones de muchos usuarios y responderlas, es
posible que haga alg
un trabajo que no toque. Por tanto, ha de controlar quien tiene
acceso y quien no a sus servicios, cosa que normalmente es muy difcil.
Carga. Un proxy ha de hacer el trabajo de muchos usuarios.
Intromisi
on. Es un paso m
as entre origen y destino, y algunos usuarios pueden no querer
pasar por el proxy.
Irregularidad. El hecho de que el proxy represente a m
as de un usuario puede generar
problemas.
Squid
Squid es un servidor que permite utilizar una sola conexi
on a Internet para todas las
estaciones de los centros de acceso para la navegaci
on por Internet. Es muy confiable, robusto
y versatil. Al ser software libre, adem
as de estar disponible el c
odigo fuente, est
a libre del pago
de costosas licencias por uso o con restricci
on a un uso con determinado n
umero de usuarios.
Beneficios:
Acceso transparente a Internet, por medio de cualquier programa, y a cualquier servicio.
Posibilidad de un control absoluto de los accesos a Internet, por fecha, hora, lugar, e
incluso persona.
Capacidad de control de p
aginas prohibidas.

2.7

Internet
La mejor definici
on se obtiene si se disecciona la propia palabra Internet: inter viene del

ingles interconnected, interconectados, y net de network, red. As que Internet es un conjunto


de redes diferentes interconectadas por el mundo [16].
Internet es una red mundial de computadoras con un conjunto de protocolos, el m
as
destacado, TCP/IP, el cual, aparece por primera vez en 1969, cuando ARPAnet establece
su primera conexi
on entre tres universidades en California y una en Utah. Tambien se usa el


CAPITULO 2. FUNDAMENTOS TEORICOS

32

termino internet como sustantivo com


un y por tanto en min
usculas para designar a cualquier red
de redes que utilicen las mismas tecnologas que Internet, independientemente de su extensi
on
o de su estado, p
ublico o privado.

Internet sirve para el ocio, para el negocio y para el trabajo. Como fuente de ocio, se
puede disfrutar de excelentes momentos de entretenimiento localizando cantidades de juegos o
programas sobre los temas de interes, jugar interactivamente con usuarios de cualquier parte
del mundo, charlar con ellos, etc. Como fuente de negocio, Internet es un enorme mercado
potencial. Internet es un campo abierto para nuevos e innovadores negocios, y para el trabajo,
Internet es una fuente inagotable de informaci
on.

Servidor de Internet apache


Apache [18] est
a dise
nado para ser un servidor de Internet potente y flexible que pueda
funcionar en la m
as amplia variedad de plataformas y entornos. Las diferentes plataformas
y los diferentes entornos, hacen que a menudo sean necesarias diferentes caractersticas y/o
funcionalidades, o que una misma caracterstica o funcionalidad sea implementada de diferente
manera para obtener una mayor eficiencia. Apache se ha adaptado siempre a una gran variedad
de entornos a traves de su dise
no modular. Este dise
no permite a los administradores de sitios
de Internet elegir que caractersticas van a ser incluidas en el servidor seleccionando que m
odulos
se van a cargar, ya sea al compilar o al ejecutar el servidor.

Apache extiende este dise


no modular hasta las funciones m
as b
asicas de un servidor de
Internet. El servidor viene con una serie de m
odulos de multiprocesamiento que son responsables
de conectar con los puertos de red de la computadora, acceptar las peticiones, y generar los
procesos hijo que se encargan de servirlas.

Apache puede soportar de una forma m


as f
acil y eficiente una amplia variedad de sistemas
operativos.

El servidor puede personalizarse mejor para las necesidades de cada sitio de Internet.
Por ejemplo, los sitios de Internet que necesitan m
as que nada escalibildad pueden usar un
MPM hebrado como worker, mientras que los sitios de Internet que requieran por encima de
otras cosas estabilidad o compatibilidad con software antiguo pueden usar prefork. Adem
as,


2.8. LENGUAJE DE PROGRAMACION

33

se pueden configurar funcionalidades especiales como servir diferentes estaciones con diferentes
identificadores de usuario (perchild).

2.8

Lenguaje de programaci
on
Un lenguaje de programaci
on [19] es un lenguaje que puede ser utilizado para contro-

lar el comportamiento de una computadora. Consiste en un conjunto de reglas sint


acticas y
sem
anticas que definen su estructura y el significado de sus elementos, respectivamente.
Aunque muchas veces se usa lenguaje de programaci
on y lenguaje inform
atico como si
fuesen sin
onimos, esto no tienen por que ser as, ya que los lenguajes inform
aticos engloban a
los lenguajes de programaci
on y a otros mas, como, por ejemplo, el HTML.
Un lenguaje de programaci
on permite a un programador especificar de manera precisa,
sobre que datos una computadora debe operar, como deben ser estos almacenados y transmitidos
y que acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a traves de
un lenguaje que intenta estar relativamente pr
oximo al lenguaje humano o natural, tal como
sucede con el lenguaje lexico.
Los procesadores usados en las computadoras son capaces de entender y actuar seg
un
lo indican programas escritos en un lenguaje fijo llamado lenguaje m
aquina. Todo programa
escrito en otro lenguaje puede ser ejecutado de dos maneras:
Mediante un programa que va adaptando las instrucciones conforme son encontradas. A
este proceso se le llama interpetar y a los programas que lo hacen se les conoce como
interpretes.
Traduciendo este programa al programa equivalente escrito en lenguaje de m
aquina. A
ese proceso se le llama compilar y al traductor se le conoce como compilador.
Clasificaci
on de los lenguajes de programaci
on
Los lenguajes de programacion se determinan seg
un el nivel de abstracci
on, seg
un la forma
de ejecuci
on y seg
un el paradigma de programaci
on que poseen cada uno de ellos, estso pueden
ser:


CAPITULO 2. FUNDAMENTOS TEORICOS

34
Seg
un el nivel de abstraci
on
Lenguajes de bajo nivel

Los lenguajes de bajo nivel son lenguajes de programaci


on que se acercan al funcionamiento
de una computadora. El lenguaje de m
as bajo nivel es, por excelencia, el c
odigo m
aquina. A
este le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los
registros de memoria de la computadora de forma directa.
Lenguajes de medio nivel
Hay lenguajes de programaci
on que son considerados por algunos expertos como lenguajes de
medio nivel (como es el caso del lenguaje C) al tener ciertas caractersticas que los acercan a
los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un
lenguaje m
as cercano al humano y, por tanto, de alto nivel.
Lenguajes de alto nivel
Los lenguajes de alto nivel son normalmente f
aciles de aprender porque est
an formados por
elementos de lenguajes naturales, como el ingles. En BASIC, el lenguaje de alto nivel m
as
conocido, los comandos como IF CONTADOR = 10 THEN STOP pueden utilizarse para
pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas
personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras
parecen comprender un lenguaje natural, lo hacen en realidad de una forma rgida y sistem
atica.
Seg
un la forma de ejecuci
on
Lenguajes compilados
Naturalmente, un programa que se escribe en un lenguaje de alto nivel tambien tiene que traducirse a un c
odigo que pueda utilizar la computadora. Los programas traductores que pueden

realizar esta operaci


on se llaman compiladores. Estos,
como los programas ensambladores avanzados, pueden generar muchas lneas de c
odigo de m
aquina por cada proposici
on del programa
fuente. Se requiere una corrida de compilaci
on antes de procesar los datos de un problema.
Los compiladores son aquellos cuya funci
on es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje m
aquina con c
odigo
binario).


2.8. LENGUAJE DE PROGRAMACION

35

Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de
Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que
luego de haber compilado el programa, ya no aparecen errores en el c
odigo.
Lenguajes interpretados
Se puede tambien utilizar una alternativa diferente de los compiladores para traducir lenguajes
de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el c
odigo
objeto que se produce durante la corrida de compilaci
on para utilizarlo en una corrida de
producci
on futura, el programador s
olo carga el programa fuente en la computadora junto
con los datos que se van a procesar, a continuaci
on, un programa interprete, almacenado en
el sistema operativo del disco, o incluido de manera permanente dentro de la computadora,
convierte cada proposici
on del programa fuente en lenguaje de m
aquina conforme vaya siendo
necesario durante el proceso de interpretaci
on de datos. No se graba el c
odigo objeto para
utilizarlo posteriormente.
La siguiente vez que se utilice una instrucci
on, se le debe interpretar otra vez y traducir
a lenguaje m
aquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo,
cada instrucci
on del ciclo tendr
a que volver a ser interpretado cada vez que se ejecute el ciclo,
lo cual hace que el programa sea m
as lento en tiempo de ejecuci
on (porque se va revisando
el c
odigo en tiempo de ejecuci
on) pero m
as r
apido en tiempo de dise
no (porque no se tiene
que estar compilando a cada momento el c
odigo completo). El interprete elimina la necesidad
de realizar una corrida de compilaci
on despues de cada modificaci
on del programa cuando se
quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado
con antelaci
on deber
a ejecutarse con mucha mayor rapidez que uno que se debe interpretar a
cada paso durante una corrida de producci
on.
Seg
un el paradigma de programaci
on
Lenguajes imperativos.
Lenguajes declarativos.
Funcionales.
Logicos.


CAPITULO 2. FUNDAMENTOS TEORICOS

36
Lenguajes orientados a objetos

En la Programaci
on Orientada a Objetos (POO u OOP seg
un siglas en ingles) se definen los
programas en terminos de clases de objetos, objetos que son entidades que combinan estado
(es decir, datos) comportamiento (esto es, procedimientos o metodos) e identidad (propiedad del
objeto que lo diferencia del resto). La programaci
on orientada a objetos expresa un programa
como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite
la programaci
on modular, lo que lleva a la f
acil escritura y reutilizaci
on de c
odigo.

2.9

Scripts
Un script de Linux equivale a un archivo *.BAT5 de MSDOS, con las siguientes diferencias:

No tiene que terminar con la extensi


on .bat. De hecho, no debe tener extensi
on.
Debe contar con permisos de ejecuci
on.
Puede ser mucho m
as complejo.
En su forma m
as simple, un archivo de texto, con una lista de comandos, que se ejecutan
en ese orden de forma autom
atica, del mismo modo que si se escriben uno a uno en una consola
de texto o una terminal, lo que en ciertas tareas repetitivas es bastante cansado, salvo que se
use un script.

2.10

MySQL

MySQL, es un sistema de gesti


on de bases de datos relacional, creada por la empresa sueca
MySQL AB [20], la cual tiene el copyright del c
odigo fuente del servidor SQL, as tambien de
la marca.
MySQL [21] es un software de c
odigo abierto, licenciado bajo la GPL (General Public
License, Licencia P
ublica General) [22] de la GNU, aunque MySQL AB distribuye una versi
on
comercial, en lo u
nico que se diferencia de la versi
on libre, es en el soporte tecnico que se ofrece,
y la posibilidad de integrar este gestor en un software propietario, ya que de otra manera, se
vulnerara la licencia GPL.
5 Un

archivo batch (o bat) es un archivo de procesamiento por lotes.

2.10. MYSQL

37

El lenguaje de programaci
on que utiliza es SQL (Structured Query Language, Lenguaje de
Consulta Estructurado)6 desarrollado por IBM en 1981 y desde entonces es utilizado de forma
generalizada en las bases de datos relacionales.
Historia de MySQL
MySQL surgi
o alrededor de la decada de los 90s, Michael Windenis comenz
o a usar
mSQL7 para conectar tablas usando sus propias rutinas de bajo nivel ISAM (Indexed Sequential
Access Method, Metodo de Acceso Secuencial Indexado). Tras sus primeras pruebas, lleg
o a la
conclusi
on de que mSQL no era lo bastante flexible ni r
apido para lo que necesitaba, por lo que
tuvo que desarrollar nuevas funciones. Esto result
o en una interfaz SQL aplicada a su base de
datos, totalmente compatible a mSQL.
El origen del nombre MySQL no se sabe con certeza de donde proviene, por una lado se
dice que en sus libreras han llevado el prefijo My durante los diez u
ltimos a
nos, por otra parte,
la hija de uno de los desarrolladores se llama My. As, que no esta claramente definido cual de
estas dos causas di
o lugar al nombre de este conocido gestor de bases de datos.
Caractersticas principales:
Inicialmente, MySQL careca de algunos elementos esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de esto, atrajo a los programadores de p
aginas de Internet con contenido din
amico, debido a su simplicidad, de tal manera
que los elementos faltantes fueron complementados por la va de las aplicaciones que la utilizan.
Poco a poco estos elementos faltantes, est
an siendo incorporados tanto por desarrolladores internos, como por desarrolladores de software libre.
El principal objetivo de MySQL es velocidad y robustez.
Soporta gran cantidad de tipos de datos para las columnas.
Gran portabilidad entre sistemas, puede trabajar en distintas plataformas y sistemas
operativos.
Cada base de datos cuenta con 3 archivos: uno de estructura, uno de datos y uno de
ndice y soporta hasta 32 ndices por tabla.
6 http://es.wikipedia.org/wiki/SQL
7 El

mSQL o el mini SQL es una base de datos ligera cliente/servidor.


CAPITULO 2. FUNDAMENTOS TEORICOS

38

Aprovecha la potencia de sistemas multiproceso, gracias a su implementaci


on multihilo.
Flexible sistema de contrase
nas y gesti
on de usuarios, con buen nivel de seguridad en los
datos.
El servidor soporta mensajes de error en distintos idiomas.

Ventajas:
Velocidad al realizar las operaciones, lo que lo convierte en uno de los gestores con mejor
rendimiento.
Bajo costo en requerimientos para la elaboraci
on de bases de datos, ya que debido a su
bajo consumo puede ser ejecutado en una computadora con escasos recursos sin ning
un
problema.
Facilidad de configuraci
on e instalaci
on.
Soporta gran variedad de sistemas operativos.
Baja probabilidad de corromper datos, incluso si los errores no se producen en el propio
gestor, sino en el sistema que lo aloja.
Conectividad y seguridad.

Desventajas:
Un gran porcentaje de las utilidades de MySQL no est
an documentadas.
No es intuitivo, como otros programas (Microsoft Access).

2.11

PHP

PHP es un lenguaje de programaci


on usado generalmente para la creaci
on de contenido
para sitios de Internet. PHP (Hypertext Pre-processor) (inicialmente PHP Tools, o, Personal
Home Page Tools), y se trata de un lenguaje interpretado usado para la creaci
on de aplicaciones
para servidores, o creaci
on de contenido din
amico para sitios de Internet.

2.11. PHP

39

El f
acil uso y la similitud con los lenguajes m
as comunes de programaci
on estructurada,
como C y Perl, permiten a la mayora de los programadores experimentados crear aplicaciones
complejas con una curva de aprendizaje muy suave. Tambien les permite involucrarse con
aplicaciones de contenido din
amico sin tener que aprender todo un nuevo grupo de funciones y
pr
acticas.
Debido al dise
no de PHP, tambien es posible crear aplicaciones con una GUI (Graphic User
Interface, interfaz gr
afica de usuario), utilizando la extensi
on PHP-GTK. Tambien puede ser
usado desde la lnea de comandos, de la misma manera como Perl o Python pueden hacerlo, esta
versi
on de PHP se llama PHP CLI (Command Line Interface, Interfaz de Lnea de Comandos).
Su interpretaci
on y ejecuci
on se da en el servidor, en el que se encuentra almacenado el
script, y el cliente s
olo recibe el resultado de la ejecucion. Cuando el cliente hace una petici
on
al servidor para que le enve una p
agina de Internet, generada por un script PHP, el servidor
ejecuta el interprete de PHP, el cual procesa el script solicitado que generar
a el contenido de
manera din
amica, pudiendo modificar el contenido a enviar, y regresa el resultado al servidor,
el cual se encarga de regresarlo al cliente. Adem
as es posible utilizar PHP para generar archivos
PDF, Flash, as como im
agenes en diferentes formatos, entre otras cosas.
Permite la conexi
on a diferentes tipos de servidores de bases de datos tales como MySQL,
Postgres, Oracle, ODBC (Open DataBase Connectivity, Conectividad Abierta de Bases de
Datos), DB2, Microsoft SQL Server, Firebird y SQLite; lo cual permite la creaci
on de aplicaciones de Internet muy robustas.
PHP tambien tiene la capacidad de ser ejecutado en la mayora de los sistemas operativos
tales como UNIX (y de ese tipo, como Linux), Windows y Mac OS/X, y puede interactuar
con los servidores de web m
as populares ya que existe en versi
on CGI, m
odulo para apache, e
ISAPI.
El modelo PHP puede ser visto como una alternativa al sistema de Microsoft que utiliza
ASP.NET/C#/VB.NET, a ColdFusion de la compa
na Macromedia, a JSP/Java de Sun Microsystems, y al famoso CGI/Perl. Aunque su creaci
on y desarrollo se da en el ambito de los
sistemas libres, bajo la licencia GNU, existe adem
as un IDE comercial llamado Zend Optimizer.

40

CAPITULO 2. FUNDAMENTOS TEORICOS

Captulo 3

Desarrollo e implementaci
on
3.1

Instalaci
on de Fedora Core 4 de Linux
Se debe obtener la version de Fedora Core 4 que se puede descargar del siguiente enlace:

http://fedora.redhat.com/Download/, donde tambien se puede encontrar una completa guia


sobre los pasos a seguir para la instalaci
on de esta distribuci
on. Se instal
o Fedora Core 4 porque
en esta distribuci
on se pueden encontrar gran cantidad de herramientas para la realizaci
on del
proyecto, adem
as, la documentaci
on y ejecuci
on del portal captivo NoCat est
a basada sobre
esta distribuci
on.

3.2

Configuraci
on de tarjetas de red
El servidor cuenta con dos tarjetas de red, una dedicada a la conexi
on a Internet y la otra

para conectar la red local con el servidor. Por definici


on, la tarjeta de red con la conexi
on a
Internet debe ser siempre la ethernet 0 (eth0).
Configuraci
on de eth0
Para tener acceso a Internet, se configura la eth0 de acuerdo al diagrama de red, de la
siguiente manera:
Inicio.
Configuraci
on del sistema.
41


CAPITULO 3. DESARROLLO E IMPLEMENTACION

42
Red.

Doble click sobre el dispositivo eth0.


Activar la casilla Activar el dispositivo cuando se incia el ordenador.
Configurar la tarjeta con una direcci
on libre del rango de la red de la Universidad
Aut
onoma de Zacatecas(10.1.3.200), la submascara (255.255.255.0)y la puerta de enlace
(10.1.3.1, direcci
on que pertenece al router de la Universidad Aut
onoma de Zacatecas).
Configuraci
on Servidor DNS y Host
Al realizar una conexi
on a Internet es necesario establecer un servidor DNS para la resoluci
on de nombres de dominio, para as, poder acceder a las p
aginas de Internet, adem
as es
necesario asignar un nombre al servidor para identificarlo de otras computadoras de la red, por
esto, es necesario establecer los siguientes par
ametros:
Ir al apartado de Red.
Click sobre la pesta
na DNS.
Asignar un nombre al host (tesislinux).
Asigna la direcci
on ip del servidor DNS (10.1.3.1).
Configuraci
on de eth1
Se configura la tarjeta eth1 para que las computadoras cliente tengan acceso al servidor.
Ir al apartado de Red.
Doble click sobre eth1.
Activar la casilla Activar el dispositivo cuando se inicia el ordenador.
Asignar una direcci
on ip (192.168.0.17), mascara de subred (255.255.255.0), no definir la
puerta de enlace.
Aceptar y guardar.
Tras reiniciar el servidor se confirma que los cambios hayan surgido efecto, se abre el
navegador favorito y se observa que existe conexi
on a Internet.

DE SERVICIOS
3.3. ACTIVACION

3.3

43

Activaci
on de Servicios
Para que la puerta de enlace funcione correctamente se deben de activar ciertos servicios,

para ello se deber


an de activar de la siguiente forma:
Inicio.
Configuraciones del Sistema.
Configuraciones del Servidor.
Servicios.
Marcar las casillas de los servicios e iniciarlos:
httpd. Para utilizar el servidor de p
aginas de Internet apache.
iptables. Para la configuraci
on del cortafuegos.
mysqld. Para la gesti
on de bases de datos.
named. Para la administraci
on de nombres de dominio.
Guardar la configuraci
on.
Una vez activados los servicios, desde la computadora cliente, se comprueba si funciona
el servidor de Internet (httpd), para ello es necesario dar una configuraci
on minima al servidor
de Internet:
Administraci
on.
Configuraciones del Servidor.
HTTP.
Configurar un nombre para el servicio.
Configurar una direcci
on v
alida para que los usuarios se pongan en contacto para cualquier
anomalia en el servidor.
Deshabilitar todas las opciones de seguridad, para ello ir a Inicio/Configuraciones del
sistema/Nivel de Seguridad.
Deshabilitar todas las opciones.


CAPITULO 3. DESARROLLO E IMPLEMENTACION

44

Con esta configuraci


on se puede intentar acceder desde un cliente al servidor de Internet
para constatar su correcto funcionamiento. Abrir la ventana del navegador en el cliente y en la
barra de direcci
on escribir http://192.168.0.17, y deber
a aparecer la p
agina de Fedora Core.

3.4

Puente de red
Hasta aqui se ha configurado la parte b
asica de lo que ser
a la puerta de enlace y ahora

viene la parte importante, es decir, la parte que permitir


a que los clientes pasen a traves del
servidor. Lo primero que se debe hacer es decirle al servidor que cualquier petici
on que llegue
a eth1 sea enrutada hacia eth0. Para ello ir a /etc/rc.d y en el fichero rc.local se a
nade la
siguiente lnea:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.

Guardar el fichero y ahora en /etc/ localizar el fichero sysctl.conf y modificar la siguiente


lnea:
net.ipv4 ipforward=0 por:
net.ipv4 ipforward=1.

Ahora en /etc/ buscar named.conf en incluir la siguiente lnea en el final de la rama


Options para que quede de la siguiente manera:

options {

//otras lneas y opciones

forward only;

forwarders{10.1.3.1;};

En este caso la direcci


on 10.1.3.1 corresponde a la direcci
on del servidor DNS.

45

3.4. PUENTE DE RED

Figura 3.1: Limpiar iptables


Ahora un paso importante en /etc/sysconfig/ es borrar los archivos de configuraci
on
iptables, iptables.save e iptables-config. El siguiente paso se debe de hacer desde una ventana
de terminal para limpiar y comprobar que iptables esta limpio (figura 3.1). Abrir una ventana
de terminal desde Inicio/Herramientas del Sistema/Terminal y ejecutar /etc/init.d/iptables
restart, con esto aparecer
a un mensaje como el de la imagen limpiar iptables.
Ahora se tiene que comprobar que la tabla de iptables esta limpia, escribiendo en la
terminal: iptables -L -n, los pasos anteriores servir
an para que cuando se reinicie el servidor,
aplique solo el contenido definido para el puente de red, es decir, la lnea: iptables -t nat -A
POSTROUTING -o eth0 -j MASQUERADE.
Paquetes adicionales
GnuPGP

Descargar el paquete gnupgp-1.2.3.tar.bz2 del siguiente enlace http://public.ftp.planetmirror.com/pub/gnupg


1.2.3.tar.gz2.
Descomprimir dentro de /root/.
Desde la ventana de terminal entrar al directorio con cd/root/gnupgp-1.2.3 y ejecutar:
./configure.
make.


CAPITULO 3. DESARROLLO E IMPLEMENTACION

46
make install.
Perl-Net-Netmask

Descargar el paquete perl-Net-Netmask-1.9007-2.noarch.rpm del siguiente enlace,


http://ftp.riken.go.jp/pub/linux/fedora.us/fedora/fedora/3/i386/RPMS.extras/.
Colocar el paquete en /root/.
Instalar el paquete con: rpm -hiv perl-Net-Netmask-1.9007-2.noarch.rpm.
Digest-MD5
Descargar el paquete Digest-MD5-2.36 del siguiente enlace, http://search.cpan.org/
gaas/digestMD5-2.36.
Descomprimir el paquete en /root/.
Desde la ventana de terminal entrar al directorio con cd /root/Digest-MD5-2.36 y
teclear.
perl Makefile.PL.
make.
make test.
make install.
Una vez instalados y configurados los pasos anteriores, se tiene todo lo necesario para que
los clientes tengan acceso a Internet a traves del switch que se encuentra entre el servidor y la
red local. As que desde cualquier cliente y conectados al switch abrir el navegador y acceder a
cualquier p
agina.

3.5

Instalaci
on de NocatAuth
Descargar el paquete NoCatAuth-nightly.tgz del siguiente enlace, http://nocat.net/download/NoCatAuth-

nightly.tgz, colocarlo en /root/, dentro de una ventana de terminal descomprimir con: tar
zxvf NoCatAuth-nightly.tgz, una vez descomprimido entrar en el directorio tecleando: cd
NoCatAuth-nightly, una vez dentro del directorio acceder a /bin/ y se deber
a de modificar
el fichero detect-fw.sh siempre y cuando se use un kernel que no sea el 2.4, cambiamos la lnea
Linux 2.4 por Linux 2.6, una vez modificado el fichero se guardan los cambios y ahora

DE NOCATAUTH
3.5. INSTALACION

47

ir a /usr/local/ y crear una carpeta con el nombre de nocat. Hechos los pasos anteriores se
puede iniciar la instalaci
on de NoCat, para ello ejecutar desde la ventana de terminal (desde
/root/NoCatAuth-nightly)make PREFIX= /usr/local/nocat/gw gateway, despues make PREFIX= /usr/local/nocat/authserv authserv.
A continuaci
on se debe borrar trustedkeys.pgp, que es la llave que lleva por defecto NoCatAuth, de /usr/local/nocat/authserv/pgp y de /usr/local/nocat/gw/pgp/. Ahora se debe
crear la llave personalizada, para ello desde /root/NoCatAuth-nightly/ teclear: make PREFIX=/usr/local/nocat/authserv pgpkey, a continuaci
on pedir
a algunos par
ametros y se deber
a
contestar de la siguiente manera:
DSA i ElGamal.
1024.
0.
s.
Colocar nombre y apellidos.
Direcci
on de correo.
Comentario.
V.
Pedir
a que se introduzca una contrase
na, se deber
a dejar en blanco.
Volver
a a pedir la contrase
na y de nuevo se deja en blanco.
Ahora el programa tomar
a su tiempo para generar la llave, mientras tanto es importante
mover el rat
on, abrir el navegador, cualquier cosa para que el generador tenga suficiente
antropia para generar la llave. Finalmente ya se tiene la llave en /usr/local/nocat/authserv.
Luego se deber
a copiar la clave y pegarla en /usr/local/nocat/gw/pgp/ y en /usr/local/nocat/authserv/pgp/.
Por u
ltimo se le deber
an otorgar permisos para que el servidor apache pueda acceder a ella.
Desde la ventana de terminal teclear: chown -R apache:apache /usr/local/nocat/authserv/pgp/
y chown -R apache:apache /usr/local/nocat/gw/pgp/.


CAPITULO 3. DESARROLLO E IMPLEMENTACION

48

3.6

Configuraci
on de NocatAuth
Para ello creamos la base de datos donde estar
an registrados todos los datos y permisos

de los usuarios. Esto mediante los siguientes pasos:


Abrir la terminal e ir al directorio /root/NoCatAuth-nigthly/.
Crear la contrase
na para acceder a mysqladmin tecleando:
mysqladmin password contrase
na.
Una vez creada la contrase
na teclear:
mysqladmin create nocat -p.
Luego pedir
a la contrase
na, teclear la clave que ha sido creada, y enter, luego teclear:
mysql nocat etc/nocat.schema -p.
Nuevamente pedir
a la contrase
na. Una vez que la contrase
na se ha introducido, se observar
a como es copiada la estructura de la base de datos de NoCatAuth en la base de datos
de MySQL.
Con todo lo anterior ya esta creada la base de datos, para verificar si realmente esta la
base de datos y configurarla, realizar los siguientes pasos:
Entrar a la base de datos tecleando:
mysql -u root -p.
Una vez dentro teclear:
grant all on nocat.* to nocat@localhost indentified by nocatauth;.
Finalmente cancelar los privilegios en mysqladmin tecleando:
flush privileges;.
Para salir teclear:
quit.
Una vez que est
a creada la base de datos y la configurada para que el servidor apache
pueda acceder a ella, modificar los archivos de configuraci
on del NoCatAuth para personalizar
la puerta de enlace, para ello realizar los siguientes pasos:
Abrir el archivo nocat.conf ubicado en /usr/local/nocat/authserv.

DE NOCATAUTH
3.6. CONFIGURACION

49

Modificar la p
agina a donde el NoCatAuth va a redirigir a los usuarios:
HomePage http://www.google.com.
Definir la direcci
on de la puerta de enlace y el rango de la red externa:
LocalGateway 10.1.3.200
LocalNetwork 10.1.3.0/24.
Verificaci
on de la base de datos definida:
DataSource DBI.
Por u
ltimo checar el nombre de la base de datos, usuario y contrase
na:
Database dbi:mysql:database=nocat .
DB User nocat
DB Passwd nocatauth.

Ya realizadas todas las modificaciones necesarias en este archivo, guardarlo y abrir el


archivo nocat.conf, pero este archivo est
a ubicado en /usr/local/nocat/gw, estos archivos tienen
el mismo nombre pero el funcionamiento de ambos es diferente, modificar las siguientes opciones:
Modificar el nombre de la puerta de enlace:
GatewayName Tesis.
Modo de trabajo de la puerta de enlace:
GatewayMode Passive.
Direcci
on de la tarjeta de la red interna (eth1):
AuthServiceAddr 192.168.0.17.
Definir las funciones de las tarjetas de red:
ExternalDevice eth0
InternalDevice eth1.
Rango de la red interna:
LocalNetwork 192.168.0.0/24.
Direcci
on del DNS:
DNSAddr 10.1.3.1.


CAPITULO 3. DESARROLLO E IMPLEMENTACION

50

Habilitar los puertos para los usuarios:


IncludePorts 22 80 443.
Guardar configuraci
on.

3.7

Configuraci
on de apache
Para que el servidor apache redireccione todas las peticiones de los clientes hacia la puerta

de enlace y puedan autentificarse, se deber


a configurar de la siguiente manera:
Abrir el fichero httpd.conf ubicado en: /etc/httpd/conf.
Definir la ubicaci
on del archivo de configuraci
on de NoCatAuth:
Include /usr/local/nocat/authserv/httpd.conf.
Configurar la direcci
on de correo del administrador:
ServerAdmin jorgealvarez14@hotmail.com.
Direcci
on de la tarjeta de red interna:
ServerName 192.168.0.17.
Definir el path de DocumentRoot:
DocumentRoot /usr/local/nocat/authserv/htdocs.
Fijar el path para DocumentRoot como principal:
Directory /usr/local/nocat/authserv/htdocs.
Comentar la line de ScriptAlias:
#ScriptAlias /cgi-bin/ /var/www/cgi-bin/.
Guardar el archivo.
Para que el servidor apache y la puerta de enlace puedan ofrecer acceso certificado o
seguro, se debe modificar el fichero de configuraci
on de seguridad SSL de la siguiente forma:
Abrir el archivo ssl.conf ubicado en: /etc/httpd/conf.d.
Modificar el path de cgi-bin:
Directory /usr/local/nocat/authserv/cgi-bin.
Guardar el archivo.

3.8. PUESTA EN MARCHA DE NOCATAUTH

3.8

51

Puesta en marcha de NoCatAuth


NoCatAuth aunque ya est
a instalado en el servidor no arranca de forma autom
atica

cuando se inicia el servidor, por ello se debe configurar el arranque autom


atico de NoCatAuth
cada vez que se inicie el servidor, de la siguiente forma:
Copiar el archivo nocat.rc ubicado en: /root/NoCatAuth-nigthly/etc/ y luego pegarlo en:
/etc/rc.d/.
Abrir el archivo en /etc/rc.d/ para editarlo.
Se
nalar el path donde esta el ejecutable de NoCatAuth:
NC=/usr/local/nocat/gw.
Guardarlo y renombrarlo como rc.nocat.
Abrir el archivo rc.local.
Comentar o borrar la lnea:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.
Incluir una lnea para que ejecute el archivo rc.nocat y arranque NoCatAuth:
/etc/rc.d/rc.nocat start.
Guardar el archivo.

3.9

Funcionalidad de la puerta de enlace


Para comprobar que la puerta de enlace funciona, se deber
a reiniciar el servidor, es impor-

tante observar el arranque en mostrar detalles o mejor dicho en modo terminal y no gr


afico,
esto sirve para que en caso de que exista un error se pueda ubicar donde esta el problema y
resolverlo.
Una vez que el servidor ha iniciado y verificado que no ocurri
o ningun error, se puede
probar la puerta de enlace desde una computadora cliente. Abrir el navegador con cualquier
p
agina, lo primero que deber
a aparecer es un certificado de seguridad, pulsar en continuar,
despues aparecer
a una ventana que pide un usuario y contrase
na, ingresar los datos solicitados,
y si la informaci
on es correcta la puerta de enlace nos redirige a la p
agina solicitada, cre
andose
as una sesi
on de Internet.


CAPITULO 3. DESARROLLO E IMPLEMENTACION

52

3.10

Instalaci
on y configuraci
on de webmin

Webmin es una herramienta muy u


til y que trabaja sobre un entorno de ventanas con
paquetes para la gran mayora de aplicaciones usadas habitualmente, con lo que sera mucho m
as amigable la relaci
on con Linux. Webmin no viene incluido en la distribuci
on de
Fedora 4, as pues, debe ser instalado. Para descargar la u
ltima versi
on se puede hacer desde
http://www.webmin.com/.
Entre las distintas distribuciones se escoje la .rpm de esta forma al descargarla, Fedora
preguntar
a si se quiere instalarla directamente, se acepta y Fedora Core 4 lo instala directamente
en el servidor. Ya dentro de la p
agina de webmin se deber
a de descargar el m
odulo de webmin
que se encuentra en la secci
on m
odulos de terceros, para que as se pueda configurar NoCat
desde webmin.
Una vez instalado se accede a webmin, para ello se abre cualquier navegador y se teclea
http://localhost:10000 , es decir, se accede a webmin a traves del puerto 10000.
Inmediatamente aparecer
a una ventana, donde pide un usuario y contrase
na, para ello se
teclear el usuario de administrador, es decir root, y la contrase
na correspondiente a el.
Ya dentro de la interfaz del webmin, se deber
a de configurar, primero se debe cambiar el
idioma seleccionando change language and theme y se escoge el idioma deseado. Siguiente
paso, ir a configuraci
on de webmin, m
odulos de webmin, se escoge la ubicaci
on donde previamente fue guardado el m
odulo de webmin y se instala. Ahora se comprueba que la instalaci
on
ha funcionado, para esto ir a la secci
on de servidores, y se comprobar
a que el m
odulo de NoCat
Authentication Gateway esta ah, seguido de esto dar un click sobre NoCat, a continuaci
on
aparecera un mensaje que dir
a que nocat no est
a instalado, esto es normal porque nocat est
a
dise
nado por defecto para una instalaci
on diferente a la que se ha realizado, as pues se deber
a
cambiar la configuraci
on para que webmin encuentre a NoCat, dar click sobre la pesta
na configuraci
on del m
odulo, y se ver
a que las rutas son diferentes a las actuales, as que bastar
a con
cambiarlas de la siguiente manera:
Authserv configuration file: /usr/local/nocat/authserv/nocat.conf.
Gateway configuration file: /usr/local/nocat/gw/nocat.conf.
Gateway command: /usr/local/nocat/gw/bin/gateway.

3.11. SARG

53

De esta manera nocat estar


a configurado.

3.11

SARG

Instalaci
on de SARG (Squid Analysis Report Generator, Generador de Reportes de
An
alisis de Squid)
Seguir los pasos siguientes:
Descargar el archivo sarg-3.2.3.1.tar.gz en el directorio /root.
Descomprimir el archivo sarg-3.2.3.1.tar.gz en el directorio /root.
Desde la terminal entrar a /root/sarg-2.2.3.1/.
Teclear ./configure.
make.
make install.
Con estas instrucciones se tendr
a instalado SARG.

Rotaci
on de archivos de Squid
El archivo access.log que se encuentra en /var/log/squid guarda la informaci
on de acceso
de todos los usuarios de Squid, Sarg toma la informaci
on necesaria de este archivo para crear
los reportes. La capacidad del archivo access.log no es infinita por lo que es necesario rotar el
archivo, para esto, primero en el arhivo de configuraci
on squid.conf en /etc/squid configurar la
siguiente lnea:
logfile rotate 7

Con la lnea anterior se especifca el n


umero de rotaciones que se pueden hacer cuando se
teclee squid -k rotate, con este comando access.log, se convertir
a en access.log.0,y as sucesivamente. Pero lo que se desea es automatizar el proceso, para esto se crea un script, que haga
la rotaci
on de archivos todos los das a una hora determinada del da. El script ser
a llamado
rotacion, que estar
a en /etc/squid, cuyo c
odigo es el siguiente:
squid -k rotate.
at -f /etc/squid/rotacion 23:00 tomorrow.


CAPITULO 3. DESARROLLO E IMPLEMENTACION

54

3.12

ClamAv

Instalaci
on y configuraci
on de ClamAv(Clam AntiVirus)
Seguir los siguientes pasos:
Bajar ClamAV en: http://www.clamav.net/.
Descomprimir el archivo Tar de ClamAV en /root.
Generar un usuario de sistema llamado clamav para que la instalaci
on sea designada a este
usuario.
Descienda a este directorio raz y ejecute : ./configure ; al realizar este paso ser
a generado un
archivo para llevar acabo la compilaci
on del c
odigo fuente.
Ejecute make para iniciar el proceso de compilaci
on.
Ejecute make install para instalar ClamAV.
Como fase de prueba, invoque el comando which clamscan, el cual debe retornar el valor
/usr/local/sbin/clamscan, as indicando que el ejecutable de ClamAV fue instalado exitosamente en el directorio /usr/local/sbin/.
Ejecuci
on de ClamAv
Para que el ClamAv empiece a trabajar es necesario activarlo para esto:
Abrir un navegador, teclear en la barra de navegaci
on http://127.0.0.1:10000.
Ir a la secci
on sistema.
Clam Antivirus.
Dar click sobre el bot
on Activar ClamAv.

3.13

Bases de datos en MySQL

Base de datos Sistema


Tabla usuariossistema
En esta tabla se guardan los datos de los usuarios del sistema, en el caso del proyecto los
usuarios son: administrador y privilegiado. La tabla contiene los atributos:
Atributo

Tipo Longitud Clave primaria

usuario

char

30

Clave primaria

PHP
3.14. DISENO
password

char

55

30

Base de datos Tesis


Tabla Direccionesip
En esta tabla se guardan las direcciones ip a las cuales el administrador o el usuario
privilegiado del sistema van a negar el servicio de Internet. La tabla contiene solo un atributo:
Atributo

Tipo Longitud Clave primaria

direccion

char

25

Tabla usuarios
En esta tabla se encuentran los usuarios a los cuales el administrador del sistema les ha
negado el servicio de Internet. Los atributos son los siguientes:
Atributo

Tipo

Longitud Clave primaria

url

char

255

description

text

created

datetime

modified

timestamp

status

unsigned

login

char

250

pass

char

255

name

char

255

3.14

Clave primaria

Dise
no PHP

P
agina principal
En la figura 3.2 se muestra la p
agina principal, a la que ser
a direccionado cualquier cliente
que desee tener conexi
on a Internet, en la p
agina se encuentra un formulario, en donde se deber
a
de introducir el nombre de usuario adem
as de la contrase
na correspondiente, estos datos ser
an

56

CAPITULO 3. DESARROLLO E IMPLEMENTACION

Figura 3.2: P
agina principal

PHP
3.14. DISENO

57

Figura 3.3: P
agina de bienvenida

verificados con la base de datos NoCat, en donde se encuentra la tabla member, que contiene
los datos de los clientes a los cuales se les permitir
a el acceso a Internet.

P
agina de bienvenida
Al momento de que el usuario ha ingresado los datos correctos, ser
a direccionado a una
p
agina de bienvenida (figura 3.3), en donde le indica al usuario un tiempo de 5 segundos para
ser redireccionado a la p
agina que en un principio indic
o en el navegador. Tambien a partir
de que el usuario ha ingresado los datos correctos, ser
a desplegada una ventana en donde se le
indica al usuario que debe de mantener abierta dicha ventana, para que la autenticaci
on pueda
ser renovada cada 450 segundos. Si el cliente lo desea pueda pulsar el bot
on de logout que se
encuentra dentro de la ventana, de este modo terminara su sesi
on.

58

CAPITULO 3. DESARROLLO E IMPLEMENTACION

Figura 3.4: Autenticaci


on del administrador

PHP
3.14. DISENO

59

Figura 3.5: Men


u del administrador

Autenticaci
on del administrador
En esta p
agina (figura 3.4) el administrador del sistema deber
a de ingresar el nombre de
usuario y su respectiva contrase
na, para que los datos sean comprobados en la base de datos
sistema, dentro de la tabla usuariossistema, en la cual se encuentran los datos del administrador
y del usuario privilegiado, para que de esta forma pueda entrar al sistema de control.

Men
u principal del administrador
En este men
u (figura 3.5), el administrador podr
a controlar las diferentes tareas del sistema, como lo es la restricci
on de: una direcci
on ip, rango de direcciones ip, de usuarios,
del ancho de banda, de p
aginas web; desbloquear: usuarios y direcciones ip; altas y bajas de
alumnos; crear y visualizar reportes, adem
as de poder cambiar la contrase
na del administrador.


CAPITULO 3. DESARROLLO E IMPLEMENTACION

60

Figura 3.6: Restringir una direcci


on ip

Restricci
on de una direcci
on ip

En esta p
agina (figura 3.6)el administrador del sistema podr
a restringir el uso de Internet
a las direcciones ip que se deseen, a traves de una caja de texto en la que deber
a de ingresar la
direcci
on a la cual no se le permitir
a el acceso a Internet. Mediante c
odigo PHP el contenido
de la caja de texto ser
a insertado en la base de datos tesis dentro de la tabla direccionesip,
para que a la vez todo el contenido de la tabla direccionesip sea copiado a un archivo de texto
llamado direccionesideseadas.txt, tal archivo ser
a leido por el proxy Squid para as delimitar el
acceso a Internet a las direcciones ip que esten dentro del archivo direccionesindeseadas.txt. Al
momento de ingresar la direcci
on ip aparecer
a una tabla con el contenido de la base de datos,
mostrando las direcciones ip que al momento estan bloqueadas.

PHP
3.14. DISENO

Figura 3.7: Restricci


on de un rango de direcciones ip

61


CAPITULO 3. DESARROLLO E IMPLEMENTACION

62

Restricci
on de un rango de direcciones ip
En esta p
agina (figura 3.7), el administrador del sistema podr
a restringir el uso de Internet
a un rango de direcciones ip que se deseen, a traves de dos cajas de texto, en las cuales, dentro
de la primera caja de texto deber
a de ir el inicio del rango de direcciones, por ejemplo, si se
quiere delimitar el rango de direcciones de la 192.168.0.5 a la 192.168.0.8, dentro de la primera
caja de texto se deber
a ingresar el n
umero 5, por lo tanto en la segunda caja de texto se deber
a
de ingresar el fin del rango deseado, en este caso 8. A traves de c
odigo PHP el contenido de las
cajas de texto ser
a tratado para insertar una a una las direcciones ip, en la base de datos tesis
dentro de la tabla direccionesip, para que a la vez todo el contenido de la tabla direccionesip
sea copiado a un archivo de texto llamado direccionesideseadas.txt, tal archivo ser
a leido por
el proxy Squid para as delimitar el acceso a Internet a las direcciones ip que esten dentro
del archivo direccionesindeseadas.txt. Al momento de ingresar la direcci
on ip aparecer
a una
tabla con el contenido de la base de datos, mostrando las direcciones ip que al momento estan
bloqueadas.

Desbloquear direcciones ip
En esta p
agina (figura 3.8), el administrador podr
a desbloquear las direcciones ip, que
han sido bloqueadas con anterioridad. A traves de la tabla que se muestra en la p
agina se podr
a
observar cuales direcciones ip estan bloqueadas, solo se deber
a de poner la direcci
on ip que se
desea desbloquear en la caja de texto, de este modo con c
odigo PHP, se realizar
a una busqueda
dentro de la base de datos tesis, en la tabla direccionesip, ya que se encuentra el dato ingresado
es borrado de la tabla. El pr
oximo paso ser
a actualizar el archivo de texto direccionesindeseadas.txt, que es el archivo que contiene las direcciones ip que no son permitidas por el proxy
Squid, para esto, mediante c
odigo PHP es eliminado el archivo direccionesindeseadas.txt, despues con una funci
on es creado nuevamente el archivo direccionesindeseadas.txt sin contenido
alguno, para despues otorgarle los permisos necesarios, y as poder copiar el contenido de la
tabla direccionesip al nuevo archivo de texto.

Restricci
on de usuarios
En esta p
agina (figura 3.9), el administrador podr
a restringir el uso de Internet a ciertos
usuarios, que han sido previamente ingresado dentro de la base de datos NoCat, en la tabla
member. Para ello el administrador deber
a de ingresar dentro de la caja de texto el nombre

PHP
3.14. DISENO

63

Figura 3.8: Desbloquear direcciones ip

64

CAPITULO 3. DESARROLLO E IMPLEMENTACION

Figura 3.9: Restringir usuarios

PHP
3.14. DISENO

65

Figura 3.10: Desbloquear usuarios


de usuario al que se le negar
a el acceso. Mediante c
odigo PHP se localizar
a dentro de la tabla
member en la base de datos NoCat el usuario que el administrador ha ingresado, para que a
su vez, al momento que ha sido localizado el usuario se copiar
an todos los datos del usuario a
la base de datos tesis dentro de la tabla usuarios, de este modo se eliminar
a el registro de la
tabla member de la base de datos NoCat, para que al momento de que el usuario quiera acceso
a Internet la conecci
on se le negar
a.

Desbloquear usuarios
En esta p
agina (figura 3.10), el administrador podr
a desbloquear a los usuarios que previamente fueron bloqueados, a partir de la tabla que se muestra en la p
agina se puede observar
cuales son los usuarios bloquedos al momento. Para desbloquear solo es necesario poner el
nombre del usuario dentro de la caja de texto, y mediante c
odigo PHP, se localizar
a en al tabla
usuarios dentro de la base de datos tesis, al localizar el usuario los datos del mismo son copiados


CAPITULO 3. DESARROLLO E IMPLEMENTACION

66

Figura 3.11: Restringir el ancho de banda

a la tabla member de la base de datos nocat, que es la base de datos donde son autenticados
todos los usuarios, despues el registro es borrado de la tabla usuarios.

Restricci
on del ancho de banda
En esta p
agina (figura 3.11), el administrador podr
a restringir el uso del ancho de banda,
el valor por defecto que utiliza Nocat en el archivo de configuraci
on throttle.fw para los usuarios
autenticados es de 1Mb, el cual es el valor maximo, a traves de la caja de texto en la p
agina
se puede modificar dicho valor, para ello se deber
a de ingresar un valor entre 0 y 1, donde el
valor 0 significa un ancho de banda nulo, y 1 el valor maximo de ancho de banda asigndado a
los clientes autenticados. El valor introducido ser
a almacenado dentro del arhivo throttle.fw,
que se encuentra en /root/NocatAuth-nightly, el cual tiene los valores de configuraci
on para el
ancho de banda.

PHP
3.14. DISENO

67

Figura 3.12: Restringir p


aginas de Internet
Control de sitios web
En esta p
agina (figura 3.12), el administrador podr
a controlar el acceso a ciertas p
aginas
de Internet que se consideren inapropiadas, para esto se deber
a de escribir dentro de la caja
de texto, ya se el nombre completo de la p
agina o palabras claves por ejemplo sex, drogas,
violencia, etc. Ya que se ha ingresado el contenido dentro de la caja de texto, dicho contenido
se guardar
a dentro del archivo de texto paginasindeseadas.txt, para que el proxy Squid, no
permita el acceso a estas p
aginas.
Alta de usuarios
En esta p
agina (figura 3.13), el administrador podr
a dar de alta alumnos al sistema para
que despues dichos alumnos puedan tener acceso a Internet. A traves de las cajas de texto de la
p
agina, que correponden a los valores de nombre de usuario, nombre de la sesi
on y contrase
na,
de este modo mediante c
odigo PHP los datos introducidos ser
an insertados dentro de la tabla

68

CAPITULO 3. DESARROLLO E IMPLEMENTACION

Figura 3.13: Alta de alumnos