Você está na página 1de 18

TUTORIAL DE SERVIDOR PROXY

SERVIDOR PROXY SQUID

Squid es un servidor de aplicaciones completo proxy cach web que proporciona


servicios de proxy y cach para Hyper Transport Protocol (HTTP), protocolo de
transferencia de archivos (FTP), y otros protocolos de red populares. Squid puede
servir de cach y proxy de Secure Sockets Layer (SSL) y el almacenamiento en cach de
consultas de Domain Name Server (DNS), y realizar el almacenamiento en cach
transparente. Squid tambin soporta una amplia variedad de protocolos de
almacenamiento en cach, como el Protocolo de Internet cach (ICP), el hipertexto
Protocolo Caching (HTCP), la matriz de cach Routing Protocol (CARP), y el Protocolo
de Coordinacin de cach Web (WCCP).

El servidor proxy cach Squid es una solucin excelente para una variedad de
necesidades de proxy y servidor de almacenamiento en cach, y las escalas de la
sucursal a las redes a nivel empresarial y ofrecer mecanismos de control de amplio
acceso, granular y control de los parmetros crticos a travs del Simple Network
Management Protocol ( SNMP). Al seleccionar un sistema informtico para su uso como
un servidor proxy cach Squid dedicado para muchos usuarios asegurarse de que est
configurado con una gran cantidad de memoria fsica como Squid mantiene una cach
en memoria para un mayor rendimiento.
El Servidor Proxy dar servicio a todos los ordenadores de su Red Local, sean estos
Windows 3.11, Windows 95, Macintosh, UNIX, o cualquier otro sistema operativo. Esto
es posible ya que el protocolo de red TCP/IP fue creado precisamente para permitir la
interconexin de redes y sistemas heterogneos.

Un Servidor Proxy puede, por lo tanto, ahorrar mucho dinero a su empresa ya que le
ahorra:
Lneas de Telfono o RDSI adicionales
Mdem o Tarjetas RDSI adicionales
Cuentas de Acceso a internet adicionales
Ancho de Banda, mediante el almacenamiento en disco de pginas ya visitadas

Los Servidores Proxy son una pieza fundamental en la creacin de una intranet de bajo
coste. Los Servidores Proxy reciben distintos nombres dependiendo de la casa de
software que los comercializa; pero en el mundo internet siempre han sido conocidos
como ``Proxy Servers''. Aprenda a reconocer esos Servidores Proxy por los servicios
que proporcionan, y no por el nombre ms o menos espectacular que reciban.

Hablando de Servidores Proxy, hay pocos secretos por descubrir; las grandes casas de
software le ofrecern productos comparativamente ms caros, y con iguales o menores

prestaciones a otros productos ms interesantes que ofrece el mercado. Como son el


CSM Proxy, CSM Proxy Plus, y CSM Proxy Enterprise.
Servicios que proporciona un Servidor Proxy

Un Servidor Proxy proporciona a los Puestos de una Red Local los mismos servicios que
estos Puestos de Trabajo de la Red Local tendran disponibles si estuviesen
directamente conectados a internet a travs de un mdem o tarjeta RDSI.

Concretamente, instalando un Servidor Proxy en su Red Local usted har posible que
desde cualquier Puesto de Trabajo de su Red Local se pueda:

Compartir una nica lnea telefnica, un nico mdem, y una nica cuenta de
conexin a internet de manera simultnea entre todos los Puestos de Trabajo
de su Red Local
Navegar por internet accediendo a Pginas Web
Escribir Correo Electrnico (conectarse a Servidores SMTP)
Recibir Correo Electrnico (conectarse a Servidores POP)
Conectarse a Servidores de Noticias NEWS (NNTP)
Conectarse a Servidores de Ficheros FTP
Conectarse a Ordenadores Remotos que compatibles con TELNET
Conectarse a Servidores de Chat IRC
Conectarse a Servidores Gopher

Un Servidor Proxy instalado en un slo ordenador de su Red Local equivale, pues, a


tener un mdem y una conexin a internet en cada uno de los Puestos de Trabajo de su
Red Local.

Adems, un Servidor Proxy le proporciona Seguridad, ya que acta tambin como


Cortafuegos (Firewall) impidiendo que desde internet se pueda acceder a los
Servidores y Puestos de Trabajo de su Red Local. Esta funcin es implcita a la manera
en que el proxy realiza las conexiones con internet.

Otra de las ventajas que proporcionan los Servidores Proxy avanzados es la


Optimizacin del Ancho de Banda de su Conexin a internet. Un Servidor Proxy
avanzado dispone de un Cache que almacena en disco las Pginas Web que se han
consultado por cualquier usuario en su Red Local. De esta manera, cuando otro usuario
solicita acceder a alguna pgina que ya se ha recibido con anterioridad, el Servidor
Proxy compara la pgina almacenada con la pgina original que est en internet y slo
entrega la pgina original si sta ha sido modificada desde la ltima lectura. El efecto es
un uso optimizado de su conexin a internet, que redunda en una mayor velocidad.
En nuestro caso la instalacin de nuestro Servidor Proxy lo hicimos con ayuda de una
Mquina Virtual o VirtualBox en donde instalamos Ubuntu 14.04. A continuacin se
dar a conocer los parmetros bsicos para el Servidor Proxy que hemos instalado.

Parmetros Bsicos para Servidor Proxy


SQUID es el software para servidor Proxy ms popular y extendido entre los sistemas
operativos basados sobre UNIX. Es muy confiable, robusto y verstil. Al ser software
libre, adems de estar disponible el cdigo fuente, est libre del pago de costosas
licencias por uso o con restriccin a un uso con determinado nmero de usuarios.

Entre otras cosas, Squid puede hacer Proxy y cache con los protocolos HTTP, FTP,
GOPHER y WAIS, Proxy de SSL, cache transparente, WWCP, aceleracin HTTP, cache de
consultas DNS y otras muchas ms como filtracin de contenido y control de acceso por
IP y por usuario.

Es importante destacar que Squid no puede funcionar como proxy para servicios como
SMTP, POP3, TELNET, SSH, etc. Si se requiere hacer proxy para cualquier cosa distinta
a HTTP, HTTPS, FTP, GOPHER y WAIS se requerir o bien implementar
enmascaramiento de IP a travs de un NAT (Network Address Translation) o bien hacer
uso de un servidor SOCKS como Dante.
INSTALACIN DEL SOFTWARE

Para empezar con la instalacin de nuestro Proxy Squid abrimos una terminal, lo
creamos como sper usuario escribiendo en la terminal, el comando sudo su para no
tener que estar escribiendo el sudo en todo momento ya que tendremos que trabajar
con varios ficheros. Podemos apreciar en la siguiente imagen:

Seguidamente Instalamos el Paquete Squid3 con el comando apt-get install squid3


Una vez terminada la instalacin del Proxy veremos que automticamente se nos inicia con el
nmero de proceso 2893.

CONFIGURACIN BSICA.
Squid utiliza el fichero de configuracin localizado en /etc/squid3/squid.conf; y podr
trabajar sobre este utilizando su editor de texto preferido, en mi caso utilice el editor de
texto gedit. Existen un gran nmero de parmetros, de los cuales recomendamos
configurar solamente los siguientes:
http_port
cache_mem
cache_dir

acl Red src 10.0.2.15/24


acl noway url_regex /etc/squid3/noperm
http_access deny noway
http_access allow Red
Una vez ya sabidos que ficheros tenemos que configurar procedemos a la configuracin, para esto
escribimos en la terminal el siguiente comando gedit /etc/squid3/squid.conf y nos aparecer una
pantalla tal y como se nos muestra a continuacin.

Parmetro http_port
Luego nos vamos a la lnea de bsqueda y escribimos el fichero http_port para que nos traslade
hasta la ubicacin del mismo; este fichero es el puerto de conexin de nuestro proxy. Podemos ver
la imagen que nos queda de la siguiente manera:

Squid por defecto utilizar el puerto 3128 para atender peticiones, sin embargo se puede especificar
que lo haga en cualquier otro puerto o bien que lo haga en varios puertos a la vez.

Parmetro cache_mem

Es la memoria cache del servidor Squid, predeterminadamente viene con 256 MB es un dato
que debemos de recordar para las prximas configuraciones del fichero.

El parmetro cache_mem establece la cantidad ideal de memoria para lo siguiente:


Objetos en trnsito.
Objetos Hot.
Objetos negativamente almacenados en el cach.
Los datos de estos objetos se almacenan en bloques de 4 Kb. El parmetro cache_mem
especifica un lmite mximo en el tamao total de bloques acomodados, donde los objetos
en trnsito tienen mayor prioridad. Sin embargo los objetos Hot y aquellos negativamente
almacenados en el cach podrn utilizar la memoria no utilizada hasta que esta sea
requerida. De ser necesario, si un objeto en trnsito es mayor a la cantidad de memoria
especificada, Squid exceder lo que sea necesario para satisfacer la peticin.

Parmetro cache_dir
Con este parmetro podemos decir que es un conjunto de directorios donde irn guardadas
nuestras pginas visitadas, para no tener que volver a entrar y cargar las pginas desde el
router sino con este fichero se har una pequea copia. En el buscador de la terminal
escribimos cache_dir. Este parmetro se utiliza para establecer que tamao se desea que
tenga el cache en el disco duro para Squid. Por defecto Squid utilizar un cache de 100 MB,
de modo tal que encontrar la siguiente lnea:
cache_dir ufs /var/spool/squid3 100 16 256
Se puede incrementar el tamao del cache hasta donde lo desee el administrador; mientras
ms grande el cache, ms objetos de almacenarn en ste y por lo tanto se utilizar menos
el ancho de banda. La siguiente lnea establece un cache de 300 MB:

cache_dir ufs /var/spool/squid3 300 16 256


Los nmeros 16 y 256 significan que el directorio del cache contendr 16 subdirectorios con
256 niveles cada uno. No modifique esto nmeros, no hay necesidad de hacerlo.
Es muy importante considerar que si se especifica un determinado tamao de cache y este
excede al espacio real disponible en el disco duro, Squid se bloquear inevitablemente. Por
ende hay que ser muy cuidadosos con el tamao de cache especificado. Todo lo
documentado anteriormente lo podemos apreciar en la siguiente imagen:

Parmetro de Control de Acceso


Es necesario establecer Listas de Control de Acceso que definan una red o bien ciertas maquinas en
particular. A cada lista se le asignar una Regla de Control de Acceso que permitir o denegar el
acceso a Squid. Procedamos a entender cmo definir unas y otras.
Regularmente una lista de control de acceso se establece siguiendo la siguiente sintaxis:
acl [nombre de la lista] src [lo que compone a la lista]
Para poner la lista de control de accesos que deseamos escribimos los siguientes comandos acl Red
src 10.0.2.15/24. La palabra Red hace referencia al nombre de la etiqueta, el src manda a hacer
una bsqueda en la direccin IP de mi red 10.0.2.15/24; esto har que nuestro proxy haga bsqueda
de todos los datos que circulan en nuestra red.
Tambin ponemos la siguiente acl noway url_regex /etc/squid3/noperm con la palabra noway
que es no permitir hacia una direccin url_regex y podemos poner palabra que queremos que nos
filtre nuestro filtro o una direccin de un fichero que ser el caso que yo he implementado con esto

lo ponemos en comilla y tecleamos la direccin del fichero tal y como esta en el siguiente comando
/etc/squid3/noperm.

Reglas de Control de Acceso


Estas definen si se permite o no el acceso a Squid. Se aplican a las Listas de Control de Acceso. Deben
colocarse en la seccin de reglas de control de acceso definidas por el administrador.
Para terminar con la modificacin de todo el fichero buscamos los comandos relacionados con el
http_access y agregamos algunas lneas como:
http_access deny noway
htpp_access allow Red

Despus de agregar estos comandos nos quedara de la siguiente manera:

Despus de haber agregados los comandos sealados tal y como nos mostr la imagen solo nos
queda Guardar y Cerrar.

Una vez guardado todo regresamos a la terminal y nos vamos a la ruta gedit /etc/squid3/noperm.
Lo podemos apreciar en la imagen siguiente:

Despus de teclear la ruta anterior nos aparecer un fichero donde incluir las palabras que me
filtrara el proxy. En la siguiente imagen se puede apreciar que ya tengo algunas palabras si se gusta
se pueden agregar ms y as tener una lista amplia de restriccin.

Solo queda guardar y fichero y cerrar:

Al terminar todos estos pasos sin haber dado ningn tipo de error ya tendremos todas las
configuraciones de nuestro proxy. Solo nos queda reiniciar el servidor Squid con el comando sudo
service squid restart

Terminado este paso solo nos queda configurar el navegador web del proxy. Entramos a nuestro
navegador en mi caso tengo el Mozilla Firefox, le damos clic en Edit (Editar) y luego en Preferences
(Preferencias) tal y como vemos a continuacin:

Nos aparecer la siguiente ventana:

Damos clic en Advanced (Herramientas) y luego en Network (Red):

Damos clic en Settings (Configuraciones) lo cual abrir otra ventana que les muestro a continuacin:
Seleccionamos Manual proxy configuration (Configuracion Manual del proxy)
Ahora escribimos la direccin de IP del servidor proxy en este caso 10.0.2.15 y el puerto donde el
servidor proxy Squid atiende las peticiones, en mi caso es el 3128.
HTTP Proxy: 10.0.2.15
Port: 3128

Aceptamos y cerramos el
explorador
para estar completamente seguros de que los cambios harn efecto. Terminado esto ya podemos
gozar de nuestro SERVIDOR PROXY.

Como podemos ver aqu tenemos una prueba de que este servidor si funciona tal y como nos lo
muestra el tutorial:

Finalizacin de la realizacin del Server Proxy a continuacin se mostraran otras manera de la


configuracin del servidor proxy usando Web Proxy Protocolo de descubrimiento automtico
(WPAD ):
La Web Proxy Protocolo de descubrimiento automtico (WPAD ) es un mtodo utilizado por
los clientes para localizar la direccin URL de un archivo de configuracin mediante DHCP y / o DNS
mtodos de descubrimiento. Una vez que la deteccin y la descarga del archivo de configuracin,
se puede ejecutar para determinar el proxy para una direccin URL especificada. El protocolo WPAD
slo describe el mecanismo para descubrir la ubicacin de este archivo, pero el formato de archivo
de configuracin usado ms comnmente es la configuracin automtica de proxy de formato
diseado originalmente por Netscape en 1996 por Netscape Navigator 2.0 .

SEGURIDAD
Al tiempo que simplifica enormemente la configuracin de los
navegadores web de una organizacin, el protocolo WPAD
tiene que ser usado con cuidado: errores simples pueden abrir
puertas para los atacantes para cambiar lo que aparece en el
navegador del usuario:
Un atacante dentro de una red puede configurar un
servidor DHCP que reparte la URL de un script
malicioso PAC.
Si la red es 'company.co.uk' y la http://wpad.company.co.uk/wpad.dat archivo no se sirve,
los navegadores se van a solicitar http://wpad.co.uk /wpad.dat. El navegador no determina
si esto sigue siendo dentro de la organizacin. Ver http://wpad.com/ para un ejemplo.
El mismo mtodo se ha utilizado con http://wpad.org.uk. Esto sola servir un archivo
wpad.dat que redirigir todo el trfico del usuario a un sitio de subastas de Internet.
ISPs que han implementado secuestro DNS pueden romper la bsqueda de DNS del
protocolo WPAD por dirigir a los usuarios a un host que no es un servidor proxy.
A travs del archivo WPAD, el atacante puede sealar los navegadores de los usuarios a sus propios
servidores proxy y de intercepcin y modificar todo el trfico de Internet. Aunque una solucin
simplista para el manejo de Windows WPAD se aplic en 2005, slo se solucion el problema para
el dominio .com. Una presentacin en Kiwicon mostr que el resto del mundo segua siendo
crticamente vulnerables a este agujero de seguridad, con un dominio de la muestra registrada en
Nueva Zelanda para realizar pruebas de recibir solicitudes de proxy de todo el pas a razn de varios
segundos.

Por qu utilizar WPAD?


Gracias a que una gran cantidad de sitios de Internet ahora funcionan a travs de HTTPS, resulta
poco prctico configurar servidores intermediarios (proxies) en modo transparente, pues stos solo
permiten el modo transparente para el protocolo HTTP (puerto 80/TCP), obligando a los
administradores de redes de rea local a configurar la salida del protocolo HTTPS (puerto 443/TCP)
a travs de NAT en el muro cortafuegos.
Una forma de enfrentar el problema y poder controlar y filtrar la actividad de los usuarios a travs
de HTTPS, es olvidarse del modo transparente de Squid y utilizar una configuracin manual del
servidor proxy. Sin embargo, esto representara una enorme cantidad de trabajo para los
administradores de redes de rea local, quienes tendran que pasar anfitrin por anfitrin a realizar
la configuracin. sta, sin embargo, se puede automatizar anunciando sta a travs de servidores
DHCP y servidores DNS, utilizando WPAD.
Eliminar la configuracin de proxy en modo trasparente y utilizar en su lugar el mtodo descrito en
este documento, combinado con una configuracin del proxy-cache que permita el acceso hacia
Internet utilizando slo a una lista blanca y el cierre de la salida por NAT hacia el puerto 443, adems
de permitir bloquear servicios como Facebook, permite tambin bloquear de manera eficiente
programas como Ultrasurf y Your Freedom. Si adems se cierra la salida hacia el puerto 22/TCP y la

salida hacia los puertos 53/UDP y 53/TCP, tambin se puede bloquear con xito a programas como
Tor Browser.

ACERCA DE WPAD.
WPAD (Web Proxy Auto-Discovery protocol) es un mtodo utilizado por
los clientes de servidores Proxy para localizar el URI de un archivo de
configuracin, valindose de mtodos de descubrimiento a travs de
DHCP y DNS.
Los clientes descargan y ejecutan un archivo, que debe denominarse wpad.dat, utilizando el formato
de auto-configuracin de proxy (PAC, Proxy Auto-Config) diseado por Netscape en 1996 para
Netscape Navigator 2.0.
El borrador del protocolo WPAD, el cual expir en 1999, fue elaborado por un consorcio de empresas
que incluan a Inktomi Corp., Microsoft, Real Networks Inc. y Sun Microsystems Inc. A pesar de
tratarse de un borrador que ha expirado, la mayora de los navegadores modernos incluyen soporte
para este protocolo.
El anuncio del archivo wpad.dat hacia la red de rea local slo puede hacerse a travs de uno de los
dos siguientes mtodos:
a. A travs de un servidor DHCP.
b. A travs de un servidor DNS.
Se puede utilizar indistintamente uno u otro mtodo. Jams combine ambos mtodos porque los
anuncios seran ignorados por los navegadores. El mtodo ms estndar es el anuncio a travs de
un servidor DHCP. Ambos mtodos requieren aadir registros en zonas de reenvo estticas o
dinmicas del servidor de DNS utilizado por la red de rea local.

Anuncio del archivo wpad.dat a travs de servidor DNS con zona


esttica.
Se requiere configurar el servidor DNS para que incluya dos registros, uno que resuelva el nombre
wpad.red-local.net y el otro que indique el URI del archivo wpad.dat. Asumiendo que tiene
configurado y funcionando un servidor DNS con una zona esttica que resuelve los nombres de
anfitrin y direcciones IP de la red de rea local, edite el archivo de zona correspondiente:
vim /var/named/data/red-local.net.zone
Cambie el nmero de serie de la zona y aada los siguientes dos registros en la zona de reenvo en
el DNS utilizado por la red de rea local. En el ejemplo se asume que el servidor HTTP que hospeda
al archivo wpad.dat corresponde a la direccin IP172.16.1.1:

Reinicie el servicio named.

Recuerde que este mtodo jams debe combinarse con el del anuncio del archivo wpad.dat a
travs de servidor DHCP.

Anuncio del archivo wpad.dat a travs de servidor DNS con zona


dinmica.
Si se trata de una zona de reenvo dinmica, ejecute nsupdate para conectarse al servidor DNS:

Desde el intrprete de mandatos de nsupdate, ejecute lo siguiente para aadir los registros
necesarios:

Utilizando este ltimo procedimiento, es innecesario reiniciar el servicio named.


Recuerde que este mtodo jams debe combinarse con el del anuncio del archivo wpad.dat a
travs de servidor DHCP.

Comprobaciones.
Si todo lo anterior concluy sin errores, slo resta verificar que la configuracin de los anfitriones
con Windows. Vaya a Opciones de Internet Conexiones Conguracin LAN y verique que
est habilitada la casilla Autodetectar configuracin de proxy. En algunos casos es posible que se
tenga que definir tambin el URI del archivo de configuracin http://wpad.redlocal.net/wpad.dat).

Para los anfitriones con GNU/Linux con GNOME 2 como escritorio slo hay que establecer
Configuracin automtica del Proxyen las Preferencias de Proxy de la red. Deje vaco el campo de
URL de configuracin automtica para forzar la deteccin del archivo wpad.dat anunciado.

Tambin se ha encontrado una manera diferente de hacer una configuracin automtica la cual se
presenta a continuacin:

Configuracin Automtica Proxy usando archivo PAC


Introduccin
Bsicamente el sistema de autoconfiguracin no es ms que un mtodo JavaScript que devuelve si
ha de utilizar proxy o no y el navegador hace una llamada a FinProxyForURL(url,host) por cada URL
que quiere visitar.
La funcin FindProxyForURL(url,host)
Esta funcin es la que indicar al navegador si debe utilizar un proxy o no, para ello debe devolver
los siguientes valores
DIRECT. La URL se puede alcanzar sin Proxy
PROXY _proxy:port_. La URL debe utilizar el proxy
A continuacin se muestra un ejemplo sencillo donde todas las URL acceden por el PROXY a
excepcin de las salidas HTTPS.
// --------------------------------------------// FindProxyForURL
//
// Autor: Urko Benito
// Version: 1.0
// --------------------------------------------function FindProxyForURL(url, host)
{
//
// Acceso HTTPS directamente sin pasar por el PROXY
//
if (shExpMatch(url, "https:*") ) return "DIRECT";
return "PROXY user-proxy-01.test.com:3128;";
} //End PAC File

Este archivo, lo podemos guardar en nuestro desktop aunque la forma ms correcta ser ubicarlo
en un servidor Web (Apache/Tomcat/etc.) y configurar nuestro clientes para que accedan a l, a
continuacin puedes ver un ejemplo de configuracin en FireFox

Funciones FindProxyForURL

Existen un conjunto de funciones incluidas en la expecificacin, entre las que destacamos:


myIPAddress: Devuelve la IP del host cliente
shExpMatch: Evala una expresin regular
Nota Sobre la Funcin myIPAddress: Se da una extraa circustancia en los FireFox 1.5.x sobre
MacOS X (aunque sobre algn Linux tambin) por un fallo en la implementacion de la
funcin myIpAddress() del sistema de configuracion automatica PAC que devuelve 127.0.0.[1|2]
pero NO EN TODOS LOS FIREFOX
A partir de aqu, podemos evolucionar nuestro archivo de configuracin como queramos, por
ejemplo, utilizar script perl para generar el archivo PAC en funcin de IPs de origen, horas, etc. ya
que con perl es relativamente sencillo y mucho ms potente.
Si queremos aadir nuestro archivo pac al apache, debemos tener en cuenta que hay que incluir
el MimeType para que Apache reconozca ".pac" como ProxyAutoConfig File, para ello, incluiremos
en $APACHE_HOME/conf/httpd.conf la siguiente lnea:
AddType application/x-ns-proxy-autoconfig .pac

Você também pode gostar