Beruflich Dokumente
Kultur Dokumente
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
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
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
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
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.
Squid.conf
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.
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
.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
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
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
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
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=