Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Luis Omar Decena Gómez
Mat.: 2010 - 1940
Sistema Operativo 3
Prof.: José Doñe
<Servidor Proxy -- Squid en Debian.>
Un proxy es un punto intermedio entre un
ordenador conectado a Internet y el servidor que
está accediendo. Cuando navegamos a través de
un proxy, nosotros en realidad no estamos
accediendo directamente al servidor, sino que
realizamos una solicitud sobre el proxy y es éste
quien se conecta con el servidor que queremos
acceder y nos devuelve el resultado de la solicitud.
Durante el proceso ocurre lo siguiente:
Cliente se conecta hacia un Servidor Intermediario (Proxy).
Cliente solicita una conexión, fichero u otro recurso disponible en un
servidor distinto.
Servidor Intermediario (Proxy) proporciona el recurso ya sea conectándose
hacia el servidor especificado o sirviendo éste desde un caché.
En algunos casos el Servidor Intermediario (Proxy) puede alterar la
solicitud del cliente o bien la respuesta del servidor para diversos
propósitos.
Squid consiste de un programa principal como servidor, un programa para
búsqueda en servidores DNS, programas opcionales para reescribir solicitudes
y realizar autenticación y algunas herramientas para administración y
herramientas para clientes. Al iniciar Squid da origen a un número configurable (5,
de modo predefinido a través del parámetro dns_children) de procesos de
búsqueda en servidores DNS, cada uno de los cuales realiza una búsqueda
única en servidores DNS, reduciendo la cantidad de tiempo de espera para
las búsquedas en servidores DNS. Squid ha sido desarrollado durante
muchos años y se le considera muy completo y robusto. Aunque orientado
a principalmente a HTTP y FTP es compatible con otros protocolos como
Internet Gopher.
1- Lo primero que tenemos que hacer es descargar e instalar el paquete squid y
para eso necesitamos entrar a la terminal root, haciendo click en
Aplicaciones – Accesorios – Terminal root.
2- Para descargar e instalar el paquete SQUID, solo tienes que escribir; apt-get
install squid.
3- Ahora crearemos la lista de páginas que el servidor proxy bloqueará.
Crearemos la lista dentro del directorio /etc/squid y ayudándonos con el
editor gedit, lo haremos de la siguiente manera: gedit /etc/squid/prohibidas.
En este documento escribiremos las direcciones de las páginas web que
será bloqueada por el servidor proxy.
4- Crea tu lista, según tus necesidades; luego haz click en Guardar y cierra la
ventana. Ahora debemos de modificar el archivo que regula la configuración
del servidor proxy –Squid. Para realizar este paso escribe /etc/squid/squid.conf .
Ubícate al final del documento y especifica lo que se muestra en la imagen.
http_port = Establece el puerto de escucha para squid, en este caso 8080
que es el puerto http (páginas web).
acl prohibidas = Indica la lista de acceso que se tomará en cuenta
url_regex */etc/squid/prohibidas* = indica la ruta en donde se
encuentra la lista de acceso, en este caso “prohibidas”
http_access deny prohibidas = Especifica que se deniegue el
acceso al contenido que tiene “prohibidas”
5- Una vez hayas modificado el archivo squid.conf, procedemos a reiniciar el
servidor proxy para que los cambios tengan efecto. Basta con escribir
/etc/init.d/squid restart.
6- Vamos a probar que nuestro servidor proxy ha acogido nuestras restrincciones.
Abre tu navegador de internet, en mi caso es Iceweasel.
7- Con el navegador abierto, haz click en Editar y luego en Preferencia.
8- Elige Avanzado – Red y luego haz click en Configuración…
9- Abre la terminal y escribe ifconfig para que sepas cual es tu dirección IP.
10- La dirección IP que posees es la que pondrás como dirección proxy.
Selecciona la opción “Configuración manual del proxy” y escribe la dirección ip
de tu PC; en Puerto, escribe el que especificaste que fue 8080 y
selecciona la casilla “Usar el mismo proxy para todo.”
Haz click en Aceptar para que se efectúen los cambios. Ahora intenta entrar a una
de las páginas que contiene el archivo “prohibidas”.
Probemos en un computador con Windows y que este conectado a la red.
Usando Internet Explorer, configura el proxy, haciendo click en Herramientas
(Tools) y luego Opciones de internet (Internet Options).
Selecciona la pestaña Conexiones (Connections) y luego haz click en
Configuración de LAN (LANSettings).
Habilita la casilla ubicada en la sección de Proxy Server y escribe la dirección IP
del servidor.
Haz click en Ok, y prueba entrando a www.youtube.com
Nota: Con esta configuración se bloquean todas las páginas.
Aquí se muestra el
visible_hostname que
especificamos.
Bloquear solo algunas páginas
1- En la terminal escribe gedit /etc/squid/squid.conf.
2- Localiza la línea que dice # INSERT YOUR OWN RULE(S) HERE TO
ALLOW ACCESS FROM YOUR CLIENTS. Debajo de esta línea escribe algo
similar a los que hicimos en la parte anterior. Vamos a utilizar la misma
lista de acceso “prohibidas”.
visible_hostname Debian-Squeeze
acl prohibidas url_regex “/etc/squid/prohibidas”
http_access deny prohibidas
2- Un poco más abajo está la siguiente línea:
Es muy importante que cambies all por el nombre de la lista de acceso, que en mi
caso es “prohibidas”. Como se muestra en la siguiente imagen:
Luego de haber realizado estas modificaciones, haz click en Guardar y cierra la
ventana.
4- De vuelta en la terminal debemos reiniciar el servidor proxy, escribiendo
/etc/init.d/squid restart
Antes de aplicar las políticas del proxy sobre nuestro cliente, vamos a
probar que podemos acceder a las direcciones que estarán bloqueadas. Prueba
que puede entrar a www.facebook.com.
5- Ahora vamos a configurar el navegador Internet Explorer haciendo click
en Herramientas – Opciones de Internet…
6- Selecciona la pestaña Conexiones y selecciona Configuración de LAN…
7- Antes de configurar el proxy, ve a tu server y escribe ifconfig para saber cual es
tu dirección IP.
8- De vuelta a la configuración del navegador IE selecciona la casilla
ubicada en la sección “Servidor proxy” y pon la dirección IP del servidor y el
puerto de squid 3128.
9- Ahora vuelve y prueba con algunas página para ver si tienes acceso.
10- Como verás hemos comprobado que se han bloqueado todas las que contiene
el archivo “prohibidas”. Verifica que sí te permite entrar a otra página.
Mira aquí el contenido del archivo prohibidas.
Bloquear equipos
Para bloquear equipos, debemos configurar nuevamente el archivo squid.conf.
En este negaremos la entrada a un solo equipo. Utilizando acl EQ1 src
192.168.1.238 este será el equipo que bloquearemos, que en este caso la
dirección IP es la del servidor. EQ1 es un nombre cualquiera que servirá
para identificar el equipo que bloquearemos. acl EQ2 src 192.168.1.122 es lo
mismo que la anterior solo que esta dirección no se tomará en cuenta
debido a que tiene el signo de # que deshabilita el enunciado.
1- Ya con la terminal abierta, escribe gedit /etc/squid/squid.conf para
modificar el archivo.
3- Ubica la línea que dice: # Adapt to list your (internal) IP networks
from where browsing.
Debajo de esta lista crearemos la de nosotros empleando lo que he
especificado al principio:
acl EQ1 src 192.168.1.122
acl EQ2 src 192.168.1.238
4- Ahora tenemos que especificar que se deniegue el acceso http a
esos equipos, y para llevar a cabo este paso debes localizar la línea #
Adapt localnet in the ACL section to list your (internal) IP network,
que está ubicada un poco más para abajo.
Debajo de http_access deny localhost, introduce lo siguiente:
http_access deny EQ1
http_access deny EQ2
http_access deny EQ1 indica que se bloquee la dirección de EQ1;
#http_access deny EQ2 indica lo mismo pero no se toma en cuenta por que tiene
el signo # delante.
5- Una vez realizada esta configuración, es necesario reiniciar el servidor,
utilizando la siguiente línea /etc/init.d/squid restart.
Comprobación
Para la comprobación utilizaré un cliente Windows; y lo primero que debemos
hacer es verificar que la dirección IP coincida con una de la que pusimos
en el archivo squid.conf. Entonces presiona la tecla WIN + R, automáticamente te
aparece Ejecutar. Ahí escribe cmd.
Escribe ipconfig para
poder visualizar la
dirección IP de la pc.
Ya con la certeza de que la dirección coincide con la especificada,
tenemos que configurar el navegador, de la misma manera que lo hicimos
para el bloque de las páginas Web.
Entra a una página web.
Ingresa de nuevo al archivo de configuración squid.conf, y comenta agregando el
signo # la línea http_access deny EQ2.
Ahora vuelve al cliente, y haz un refresh a la página. Pero antes recuerda
reiniciar el servicio squid (/etc/init.d/squid restart).
Como verás ya se han eliminado las restrincciones para este cliente cuya
dirección es 192.168.1.238.
En esta parte del tutorial crearemos una lista de acceso (ACL) que entra en
vigencia en ciertos horarios y en días específicos. Veamos como es la sintaxis.
La sintaxis para crear Listas de control de acceso que definan horarios es la
siguiente:
acl [nombre del horario] time [días de la semana] hh:mm-hh:mm
Los días de la semana se definen con letras, las cuales corresponden a la primera
letra del nombre en inglés, de modo que se utilizarán del siguiente modo:
S - Domingo
M - Lunes
T - Martes
W - Miércoles
H - Jueves
F - Viernes
A – Sábado
Esta regla define a la lista diaslaborales, la cual comprende un horario de
01:00 a 1:30 horas desde el Lunes hasta el Viernes.
acl findesemana time SFA 01:00-1:30
Vamos a realizar este ejemplo, pero antes quiero recalcar que ustedes
pueden acomodar los días y horas de acuerdo a sus necesidades, yo le he puesto
solo media hora para la comprobación. Ya sabes tienes que escribir nano
/etc/squid/squid.conf.
1- Ubica la parte que dice # INSERT YOUR OWN RULE(S) HERE TO
ALLOW ACCESS FROM YOUR CLIENTS; y escribe la lista de acceso.
2- Ahora tenemos que especificar que se deniegue la navegación en
ese horario; escribiendo la siguiente línea: http_access deny
diaslaborales. Debes poner esta línea un poco más abajo.
3- El puerto de escucha que utiliza Squid es el 3128, así que para
variar vamos a cambiar al 8080. Para lo cual debes de ubicar la
siguiente línea dentro del archivo de configuración.
4- Guarda los cambios, y reinicia el servidor proxy para que los cambios
tengan efecto.
Nota: Las horas están en un formato de 24 horas, por
ejemplo 09:00 p.m => 21:00
5- Ve ahora a tu cliente, en mi caso sigo usando un cliente Windows. Intenta
navegar, y como verás no está permitido, porque como puedes observar la hora
del sistema es 1:02.
Después que pasan de las 1:30, haz un refresh (actualiza) la página, y verás como
ya puedes navegar.
Otro ejemplo que mostraré será bloquear el acceso al dominio web
.com en un determinado periodo de tiempo.
Este tipo de listas se aplican en las Reglas de Control de Acceso con una
mecánica similar a la siguiente: se permite o deniega el acceso en el horario
definido en la Lista de Control de Acceso denominada X para las entidades
definidas en la Lista de Control de Acceso denominada Y. Lo anterior expresado
en una Regla de Control de Acceso, queda del siguiente modo:
http_access [allow | deny] [nombre del horario] [lista de entidades]
1- Si se quiere establecer que los miembros de la Lista de Control de
Acceso denominada luchtime tengan permitido acceder a páginas cuyo dominio
sea .com en un horario que denominaremos como almuerzo, y que comprende de
lunes a viernes de 12:00 a 14:00 horas.
La definción para el horario correspondería a:
acl luchtime srcdomain .com
acl matutino time MTWHF 12:00-14:00