Sie sind auf Seite 1von 30

Squid

Introduccin
El trmino en ingles Proxy tiene un significado muy general y al mismo tiempo ambiguo, aunque invariablemente se considera un sinnimo del concepto de Intermediario. e suele traducir, en el sentido estricto, como delegado o apoderado !el que tiene el que poder sobre otro". En inform#tica, el trmino Proxy $ace referencia a un programa o dispositivo que reali%a una accin en representacin de otro.

Definicin de Proxy
&n ervidor Intermediario !Proxy" se define como una m#quina que ofrece un servicio de red que consiste en permitir a los clientes reali%ar conexiones de red indirectas $acia otros servicios de red.

En su forma m#s pura, se trata de una m#quina dual'$omed, es decir, conectada a dos redes, pero que no tiene capacidad de enrutamiento. El Proxy reserva un espacio de (isco de longitud variable, al que se denominar# cac$.

Funcionamiento
Por una de las interfaces, el proxy recibe una peticin de un $ost cliente. El soft)are toma una de estas peticiones, y lo siguiente que $ace es buscar en la cac$, para ver si ya existe una copia de la p#gina u ob*eto que est# solicitando el cliente+
i ya existe, solo toma esa copia existente en el disco duro, y se la env,a al cliente solicitante. i no existe dic$a copia, el Proxy tiene que ba*ar aquel contenido de Internet, para poder envi#rselo al cliente. En este caso, adem#s de $acer dic$o env,o, se encarga de a-adir este nuevo ob*eto, p#gina o arc$ivo a la cac$ para su posterior uso.

Funcionamiento
&n Proxy permite a otros equipos conectarse a una red de forma indirecta a travs de l. .uando un equipo de la red desea acceder a una informacin o recurso, es realmente el Proxy quien reali%a la comunicacin y a continuacin traslada el resultado al equipo inicial. En unos casos esto se $ace as, porque no es posible la comunicacin directa y en otros casos porque el Proxy a-ade una funcionalidad adicional, como puede ser la de mantener los resultados obtenidos !por e*emplo una p#gina /eb" en una cac$e que permita acelerar sucesivas consultas coincidentes.

Pasos de Funcionamiento
El cliente se conecta $acia un ervidor Intermediario !Proxy". El cliente solicita una conexin, fic$ero u otro recurso disponible en un servidor distinto. El servidor Intermediario !Proxy" proporciona el recurso ya sea conect#ndose $acia el servidor especificado o sirviendo ste desde un cac$. En algunos casos el ervidor Intermediario !Proxy" puede alterar la solicitud del cliente o bien la respuesta del servidor para diversos propsitos.

Ventajas de un Proxy
.ontrol+ lo el intermediario $ace el traba*o real, por tanto se pueden limitar y restringir los derec$os de los usuarios, y dar permisos slo al Proxy. 0elocidad+ i varios clientes van a pedir el mismo recurso, el Proxy puede $acer cac$+ guardar la respuesta de una peticin para darla directamente cuando otro usuario la pida. 1iltrado+ El Proxy puede negarse a responder algunas peticiones si detecta que est#n pro$ibidas. 2odificacin+ .omo intermediario que es, un Proxy puede falsificar informacin, o modificarla siguiendo un algoritmo.

Desventajas de un Proxy
3buso+ &suarios a*enos que desean navegar annimamente. .arga+ &n Proxy $a de $acer el traba*o de muc$os usuarios. Intromisin+ Es un paso m#s entre origen y destino, y algunos usuarios pueden no querer pasar por el Proxy. 4 menos si $ace de cac$ y guarda copias de los datos. Inco$erencia+ i $ace de cac$, es posible que se equivoque y d una respuesta antigua cuando $ay una m#s reciente en el recurso de destino. Irregularidad+ El $ec$o de que el Proxy represente a m#s de un usuario da problemas en muc$os servicios, en concreto los que requieren una comunicacin directa entre 5 emisor y 5 receptor.

Instalar Squid
Para instalar squid en una distribucin derivada de debian, como ubuntu, basta con $acer+ sudo apt-get install squid

Configuracin de Squid
Para $acer esto se a-adir#n y6o modificaran algunas l,neas al fic$ero de configuracin del quid, cuya ruta es+ etc squid squid!conf squid.conf viene muy documentado. 3ntes de seguir, c$ale un vista%o. Es com7n $acer una copia de seguridad del fic$ero inicial, y crear uno vac,o con solo los argumentos necesarios. " sudo mv squid!conf squid!conf!#a$ " sudo touc% squid!conf

Squid.conf
Esta es una configuracin vlida para un proxy. http_port 8080 access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log acl all src 0.0.0.0/0.0.0.0 acl yo src 12 .0.0.1/!2 http_access allo" yo http_access deny all

#ntroduci$os esta %onfiguracin y luego configura$os firefox para que utilice 12 .0.0.1 co$o proxy.

Squid.conf

http_port !128 Este es el puerto que &quid utili'a para escuchar las solicitudes de los clientes. El puerto por defecto es el !128( pero el 8080 ta$)i*n suele utili'arse. &i lo desea( puede especificar varios n+$eros de puerto separados por espacios.

Squid.conf

cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log

Estas tres entradas especifican las rutas en las que &quid registra todas sus acciones. ,or$al$ente no es necesario reali'ar ning+n ca$)io. &i &quid experi$enta una carga de uso intensa( puede que resulte +til distri)uir el cach* y los archivos de registro en varios discos.

Squid.conf

-%.s

&quid proporciona listas de acceso para controlar el acceso al alterno. .as -%. son listas con reglas que se procesan de for$a secuencial. .as listas -%. de)en definirse antes de proceder a su uso. -lgunas listas -%.( co$o all y localhost( estn predefinidas.

Squid.conf

acl /no$)re_acl0 /tipo0 /datos0


/tipo0 selecciona el tipo de lista de acceso 1src( ti$e( srcdo$ain( dstdo$ain( url_regex...2. /datos0 depende del tipo de -%. individual y ta$)i*n puede leerse desde un archivo( por e3e$plo $ediante no$)res de hosts( direcciones #4 o direcciones 56..

/no$)re_acl0 puede elegirse ar)itraria$ente.

e3e$plos7
acl $isusuarios srcdo$ain .$ido$inio.co$ acl profesores src 182.198.1.0/2::.2::.2::.0 acl alu$nos src 182.198. .0;182.198.8.0/2::.2::.2::.0 acl horadelal$uer'o ti$e <=>?@ 12700;1:700

=ipos de -%.

Squid.conf

&rc o dst7 hace referencia a una ip o direccin de red.

acl red_local src /etc/squid/ip_permitidas acl red_local src 192.168.1.0/24 acl google_es dst 216.239.0.0/24

=i$e7 per$ite denegar conexiones dentro de un rango horario. ! " # $ 8%00&1'%00

acl horario_laboral time

acl horario time 18%00&21%00 &rcdo$ain o dstdo$ain7 per$ite denegar conexiones a un deter$inado sitio. 5rlregex7 per$ite identificar sitios "e) seg+n cierto patrn. =a$)i*n se puede i$portar definiciones de sitios desde un fichero externo. acl google_com dstdomai( google.com

acl sitios_prohibidos url_rege) /etc/squid/sitios_prohibidos acl pi(cha_google url_rege) &i *+tp%//.,-.pd+. /cl +icheros_prohibidos urlpath_rege) .pd+. .mp3. .0ip.

4ort7 per$ite identificar un puerto de aplicacin

acl puertos_112 port 443 '63

Adems de estos tipos hay muchos ms

Squid.conf

http_access 1allo" A deny2 /no$)re_acl0

4ara que una -%. sea efectiva hay que aplicarla $ediante http_access. &e puede per$itir o denegar el acceso $ediante los valores deny 1Benegar2 y allo" 14er$itir2. .as clusulas http_access se procesarn de arri)a a a)a3o( por lo que es $uy i$portante el orden. .a +lti$a entrada sie$pre de)e ser http_access deny all o lo de3are$os pasar todo. http_access allo3 localhost http_access de(4 all

Squid.conf

Existen $ultitud de argu$entos en squid.conf( pero es i$posi)le conocerlos todos. -lgunos que pueden ser +tiles.

cache_$e$ cache_dir cache_effective_user y cache_effective_group dns_na$eservers cache_peer

Squid.conf

cache_$e$ 8 <C Esta entrada define la cantidad de $e$oria que puede e$plear &quid para las respuestas $s frecuentes y las activas. El valor por defecto es 8 <C. Este valor no especifica el uso total de $e$oria de &quid( por lo que es posi)le que el uso real sea superior.

Squid.conf

cache_dir ufs /var/cache/squid/ 100 19 2:9

.a entrada cache_dir define el directorio del disco en el que se al$acenan todos los o)3etos. .os n+$eros del final indican el espacio $xi$o en disco que de)e utili'arse en <C y el n+$ero de directorios de pri$er y segundo nivel. El par$etro indica ufs indica el algorit$o de lectura/escritura en disco. -de$s de ufs estn aufs( disDd( coss y null. .os valores por defecto i$plican 100 <C de espacio ocupado en disco por el directorio /var/cache/squid y la creacin de 19 su)directorios en *l( cada uno de los cuales contiene 2:9 su)directorios adicionales. %a$)iar los valores de su)directorios puede relenti'ar el siste$a.

Squid.conf

%ache_effective_user y cache_effective_group

cache_effective_user proxy cache_effective_group proxy

Be este $odo indica$os el usuario que utili'a squid para e3ecutar sus procesos. Be este $odo evita$os que un usuario puedo acceder a los recursos gesionados por squid.

En u)untu( squid utili'a el usuario proxy por defecto( por lo que en principio no ha)r que usarlos. En cualquier caso( co$prue)a que el proceso squid se e3ecuta )a3o el usuario proxy y que los directorios cach* son propiedad de proxy. sudo ps aux A grep proxy ls ;lah /var/spool/squid

Squid.conf

dns_na$eservers 12 .0.0.1 80.:8.!2.!!

4ode$os definir los servidores B,& que utili'ar el proxy para resolver no$)res. &e pueden definir varios servidores B,&.

Squid.conf

%ache_peer

&quid per$ite crear 3erarquEas de cach*s. 4uede ha)er proxys;cach*s padres y her$anos. &i esta)lece$os una 3erarquEa padre;hi3o 1parent2( el padre de)e proporcionar el o)3eto pedido tanto si est en la cach* co$o si no lo est.

Squid.conf

?E6<-,F 1.

icp_port !1!0 G puerto icp cache_peer 1 2.19.112.1!1 parent !128 !1!0 default G defini$os cache padre. 4uerto proxy !128 y puerto icp !1!0 cache_peer 1 2.19.112.1!9 si)ling 8081 !1!0 proxy;only G defini$os cache her$ano. 4uerto proxy 8081 y puerto icp !1!0 icp_access allo" all G per$iti$os acceso icp a todos
Befault7 en caso de duda( usar este vecino. 4roxy;only7 no al$acenar en cach* la respuesta de este vecino

Squid.conf

?E6<-,F 2.

icp_port !1!0 G puerto icp cache_peer 1 2.19.112.1!1 parent !128 !1!0 default G defini$os cache padre. 4uerto proxy !128 y puerto icp !1!0 cache_peer 1 2.19.112.1!: si)ling 8081 !1!0 proxy;only G defini$os cache her$ano. 4uerto proxy 8081 y puerto icp !1!0 icp_access allo" all G per$iti$os acceso icp a todos

Squid.conf

4-B6E

icp_port !1!0 G puerto icp icp_access allo" all G per$iti$os acceso icp a todos

Squid.conf

=a$)i*n pode$os li$itar el acceso al proxy $ediante usuario y contraseHa. &i tene$os un controlador de do$inio( pode$os autenticar contra *l. ,osotros de $o$ento( utili'ar$enos la autenticacin de -pache.

Squid.conf
I touch /etc/squid/squid_pass"d I ch$od 9JJ /etc/squid/squid_pass"dK cho"n proxy7proxy /etc/squid/squid_pass"d I htpass"d /etc/squid/squid_pass"d """ 5e3 pass3ord% 6e&t4pe (e3 pass3ord% /ddi(g pass3ord +or user 333 I locate ncsa_auth /usr/lib/squid/(csa_auth 5suarios del siste$a. acl autori'ado ident $auri http_access allo" autori'ado Opcin alternativa

Hay que Aadir en squid.conf:


auth_para$ )asic progra$ /usr/li)/squid/ncsa_auth /etc/squid/squid_pass"d acl ncsa_users proxy_auth 6EL5#6EB acl business_hours ti$e < = > ? @ 8700;1 700 http_access allo" ncsa_users business_hours

Squid.conf

4roxy transparente 5n proxy transparente no requiere la configuracin de firefox. 4ara conseguir un proxy transparente hacen falta dos cosas7

En squid.conf

http_port !128 transparent

En ipta)les

1pgina siguiente2

Squid+iptables
ipta)les ;t nat ;- 46E6F5=#,M ;i eth1 ;p tcp ;;dport 80 ;3 6EB#6E%= ;;to;port !128 ipta)les ;- #,45= ;$ state ;;state ,E>(E&=-C.#&?EB(6E.-=EB ;i eth1 ;p tcp ;;dport !128 ;3 -%%E4= ipta)les ;- F5=45= ;$ state ;;state ,E>(E&=-C.#&?EB(6E.-=EB ;o eth0 ;p tcp ;;dport 80 ;3 -%%E4= ipta)les ;- #,45= ;$ state ;;state E&=-C.#&?EB(6E.-=EB ;i eth0 ;p tcp ;;sport 80 ;3 -%%E4= ipta)les ;- F5=45= ;$ state ;;state E&=-C.#&?EB(6E.-=EB ;o eth1 ;p tcp ;;sport 80 ;3 -%%E4=

Das könnte Ihnen auch gefallen