Sei sulla pagina 1di 12

Introduccin

Un proxy de conexin a Internet es un servidor que hace de intermediario entre los PCs de la red y el router de conexin a Internet, de forma que cuando un usuario quiere acceder a Internet, su PC realiza la peticin al servidor Proxy y es el Proxy quien realmente accede a Internet. Posteriormente, el Proxy enviar los datos al PC del usuario para que los muestre en su pantalla. El PC del usuario no tendr conexin directa con el router, sino que acceder a Internet por medio del proxy.

El proxy es un intermediario

enta!as de disponer de un proxy"

#os PCs de los usuarios no tienen acceso al router, todas las comunicaciones exteriores pasarn por el Proxy, lo que nos permitir tener las comunicaciones $a!o control. Podemos permitir o dene%ar el acceso &e$, ftp, email, messen%er, p'p, etc... #as p%inas se cachean en la memoria temporal del proxy lo cual acelera la descar%a cuando varios usuarios acceden a las mismas p%inas a la vez. Esta circunstancia se da mucho en los centros educativos cuando el profesor est explicando un tema y todos los alumnos acceden a la vez a la misma p%ina. Es fcil crear una lista de urls prohibidas a las que el proxy dene%ar el acceso. Permite crear una lista de palabras prohibidas en url. El proxy dene%ar el acceso cuando se introduzcan en formularios de $(squeda o en la $arra de direcciones. )e puede permitir o dene%ar el acceso a subredes o a PCs concretos. )i dise*amos la red de forma que cada aula del centro ten%a un ran%o

determinado, por e!emplo +,.,.-.. donde - es el n(mero de aula e . el n(mero de PC, ser/a posi$le permitir o dene%ar la conexin a Internet aula por aula.

El proxy %uarda informes de todas las conexiones que hacen los usuarios. 0l principio puede ser interesante ver a qu1 p%inas de contenido inadecuado acceden nuestros alumnos, para a%re%arlas a la lista de urls prohi$idas. #os PCs de nuestra red estn ms seguros de ataques externos ya que el proxy hace de $arrera cortafue%os.

Inconvenientes de la utilizacin de un Proxy"


2o todo son venta!as, tam$i1n hay al%(n inconveniente en la utilizacin de un Proxy"

Para que las aplicaciones accedan a Internet a trav1s del proxy, es necesario configurar cada aplicacin" nave%ador &e$, cliente ftp, cliente de correo, etc... 3odas las comunicaciones con el exterior pasarn por el servidor. )i el proxy falla, la red se quedar sin conexin a Internet. Para su$sanar lo ms rpidamente posi$le el pro$lema ante un fallo del Proxy, ser conveniente disponer de un proxy de repuesto. El proxy requiere mantenimiento. Para que todo funcione, es necesario que exista un administrador de la red que se encar%ue de actualizar, revisar, mantener y reparar el proxy cuando de!e de funcionar.

4ise*o recomendado de la red del centro


Para facilitar la %estin del acceso a Internet en el centro, se recomienda dise*ar la red de forma que cada aula ten%a un ran%o de IPs determinado. Para no quedarnos cortos, lo me!or es utilizar el ran%o +,.,.,.,56 si%uiendo el esquema +,.7.-.. donde 7 ser/a el n(mero de edificio, - el n(mero de aula e . el n(mero de PC, que nos permitir/a tener un mximo de '89 edificios con '89 aulas cada uno y '89 PCs por aula. )i disponemos de un (nico edificio con tres aulas, un sencillo esquema de direccionamiento IP podr/a ser el si%uiente"

Direccionamiento de nuestra red :Utilizar el ran%o 10.0.0.0/8 para el direccionamiento de red del centro educativo. :Utilizar la IP 10.0.0.1 para el servidor proxy. Conviene que dicho servidor sea tam$i1n servidor 42). :#as aulas usarn la direccin 10.0.X.Y donde - sea el n(mero de aula e . sea el n(mero de PC. E!emplo, si en la aula + hay 9 PCs, en el aula ' hay ; y en el aula ; hay ;, el direccionamiento ser/a" 0ula PC 2om. IP <scara P.Enlace 42) :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + + a+pc+ +,.,.+.+ '88.,.,., sin confi%urar +,.,.,.+ + ' a+pc' +,.,.+.' '88.,.,., sin confi%urar +,.,.,.+ + ; a+pc; +,.,.+.; '88.,.,., sin confi%urar +,.,.,.+ + 9 a+pc9 +,.,.+.9 '88.,.,., sin confi%urar +,.,.,.+ ' + a'pc+ +,.,.'.+ '88.,.,., sin confi%urar +,.,.,.+ ' ' a'pc' +,.,.'.' '88.,.,., sin confi%urar +,.,.,.+ ' ; a'pc; +,.,.'.; '88.,.,., sin confi%urar +,.,.,.+ ; + a;pc+ +,.,.;.+ '88.,.,., sin confi%urar +,.,.,.+ ; ' a;pc' +,.,.;.' '88.,.,., sin confi%urar +,.,.,.+ ; ; a;pc; +,.,.;.; '88.,.,., sin confi%urar +,.,.,.+

Instalacin del Proxy squid


#inux dispone del Proxy squid. )e trata de una aplicacin de %ran 1xito que se lleva utilizando muchos a*os y dispone de cientos de posi$ilidades para personalizar su funcionamiento a nuestras necesidades. Para instalar la (ltima versin de squid, podemos hacerlo con apt:%et desde una consola de root" 55 Instalacin del servidor Proxy squid sudo apt:%et install squid 4e esta forma instalar/amos los pro%ramas necesarios para disponer de un completo servidor Proxy en nuestra red. 3an solo ser necesario confi%urarlo y ponerlo en marcha.

0rranque y parada del proxy squid


El servicio squid, al i%ual que todos los servicios, dispone de scripts de arranque y parada en la carpeta 5etc5init.d. 4e$emos e!ecutarlos desde una consola de root. 55 0rrancar o reiniciar el servidor squid sudo 5etc5init.d5squid restart 55 Parar el servidor squid sudo 5etc5init.d5squid stop 55 =ecar%ar confi%uracin del servidor squid sudo 5etc5init.d5squid reload Para un arranque automtico del servicio al iniciar el servidor, de$emos crear los enlaces sim$licos correspondientes tal y como se indica en el apartado rucos ! "rranque autom#tico de ser$icios al iniciar el sistema.

Confi%uracin $sica del proxy squid


El archivo de confi%uracin del proxy es el archivo /etc/squid/squid.conf. )i o$servamos dicho archivo, veremos que es un archivo muy extenso en el que hay cientos de parmetros que podemos esta$lecer, pero para una utilizacin $sica, son unos pocos los parmetros que de$emos confi%urar. 4e todos los apartados que dispone el archivo 5etc5squid5squid.conf, solo destacaremos los si%uientes" %& '%() *%+ ", -E( '." '%( /%pciones de autentificaci0n1 0qu/ se esta$lecen las opciones de autentificacin del Proxy. 0unque aqu/ no vamos a ha$lar de ello, existe la posi$ilidad de confi%urar squid para que solicite usuario y contrase*a para poder nave%ar por Internet. )i se quiere hacer uso de esta funcionalidad, lo normal ser/a tener almacenados los usuarios y las contrase*as en un servidor #40P y en funcin de los %rupos a los que pertenezcan los usuarios, podr/amos ha$ilitar o desha$ilitar el acceso.

Esto puede ser interesante en empresas, donde el administrador de red da acceso a Internet solo a los usuarios que lo necesitan. En un centro educativo supondr/a $astante tra$a!o llevar una administracin de este tipo ya que ha$r/a que crear y %estionar un usuario para cada alumno y para cada profesor. Es ms fcil administrar por redes y por aulas. "..E)) .%( +%2 /.ontrol de "cceso1 En esta seccin esta$leceremos los permisos de acceso, es decir, quien puede nave%ar y quien no. #o primero que tendremos que hacer es crear listas de control de acceso >0ccess Control #ist : 0C#? y lue%o dar permisos a dichas listas. Una lista de control de acceso >acl? se crea utilizando la pala$ra acl se%uido del nom$re que queramos dar a la lista y se%uido de una condicin que cumplirn los miem$ros de la lista. Entre las condiciones ms utilizadas destacamos" src >IPs o U=#s ori%en?, dst >IPs o U=#s destino?, port >puertos? y proto >protocolos?. E!emplos" )i en mi red local utilizo el direccionamiento +,.,.,.,56, puedo crear una lista para definir a toda mi red" 55acl para definir toda mi red acl todos src +,.,.,.,56 )i en mi red local utilizo el direccionamiento +,.,.-.,5'9, para el aula -, puedo crear una lista para cada aula" 55Una acl para cada aula acl aula+ src +,.,.+.,5'9 acl aula' src +,.,.'.,5'9 acl aula; src +,.,.;.,5'9 acl aula9 src +,.,.9.,5'9 acl aula8 src +,.,.8.,5'9 #ue%o tendr/a que dar permiso a las listas. Para ello se utiliza la pala$ra clave http3access se%uido del permiso allo& >permitir? o deny >dene%ar? y se%uido del nom$re de la lista. E!emplos" )i quiero dar permiso a toda mi red para que nave%ue por Internet" 55Permiso para que nave%ue toda mi red http@access allo& todos )i quiero dar permiso a las aulas +, ' y ; para que nave%ue por Internet pero no quiero que nave%uen las aulas 9 y 8" 55Permiso para que nave%uen las aulas +, ' y ; y no nave%uen las aulas 9 y 8 http@access allo& aula+ http@access allo& aula' http@access allo& aula;

http@access deny aula9 http@access deny aula8 Por defecto, squid viene confi%urado para actuar como cach4 de acceso a Internet, pero no tiene creadas listas de control de acceso. )i confi%uramos el nave%ador de Internet de los PCs cliente para que utilicen el Proxy, veremos que tenemos dene%ado el acceso al Proxy. Para empezar a disfrutar del Proxy, tendremos que crear una lista de control de acceso con el ran%o de nuestra red y darla permiso. )i en nuestra red utilizamos el ran%o +,.,.,.,56, de$er/amos a*adir en 5etc5squid5squid.conf" 55Permiso para que nave%ue toda mi red. acl todos src +,.,.,.,56 http@access allo& todos Cuando creamos acls, podemos sustituir el ran%o de IPs por el nom$re de un archivo externo, y de esa manera podemos indicar el en archivo externo el ran%o o los ran%os de IPs a los que queremos referirnos, sin necesidad de estar continuamente modificando el archivo squid.conf. <s adelante veremos un e!emplo cmo tener un archivo externo con las urls prohi$idas a las que no podrn nave%ar nuestros alumnos. (E 5%+6 %& '%() /%pciones de red1 En esta seccin esta$leceremos con el parmetro http@port, el puerto en el que escucha el Proxy. #o me!or es de!ar el valor por defecto que es el puerto ;+'6" 55Confi%urar squid en el puerto ;+'6 http@proxy ;+'6 )quid puede tra$a!ar en modo transparente. #a venta!a de confi%urar squid en dicho modo de tra$a!o, es que no ser/a necesario confi%urar el nave%ador de los PCs clientes para tra$a!ar con el proxy, sino que simplemente confi%uramos la puerta de enlace del PC cliente con la IP del servidor proxy. Posteriormente tendremos que confi%urar el cortafue%os del servidor para que rediri!a las peticiones al puerto 6, hacia el puerto ;+'6 y as/ las reci$a squid. )i deseamos poner el Proxy en modo transparente, de$eremos indicarlo despu1s del puerto. En tal caso, el parmetro http@port quedar/a as/" 55Confi%urar squid en el puerto ;+'6, en modo transparente http@proxy ;+'6 transparent 55=ediri%ir las peticiones al puerto 6, hacia el puerto ;+'6. E!ecutar como root" sudo ipta$les :t nat :0 P=E=AU3I2B :i eth+ :p tcp ::dport 6, :! =E4I=EC3 ::to:port ;+'6 El inconveniente de tra$a!ar en modo transparente es que no sirve para el protocolo C33P). 7E7%+Y .".-E %& '%() En esta seccin esta$leceremos la memoria =0< utilizada para la cach1. Una $uena opcin es utilizar so$re un tercio de la memoria =0< del sistema. E!emplo, si nuestro sistema tiene 8+' <D de memoria =0<, una $uena opcin

ser/a" 55=0< utilizada por squid cache@mem +E' <D D')6 .".-E %& '%() En esta seccin esta$leceremos el espacio de disco duro utilizado para la cach1. Una $uena opcin es utilizar el 8,F de la capacidad total del disco duro. E!emplo, si nuestro disco tiene sistema tiene 6, BD de memoria =0<, una $uena opcin ser/a utilizar 9, BD. 4e$eremos utilizar la pala$ra clave cache@dir se%uida de la pala$ra ufs que es el formato utilizado por squid, de la carpeta donde queremos que se almacene la cache, el tama*o de la cach1 en <D, el n(mero de su$directorios de primer nivel y el n(mero de su$directorios de se%undo nivel. E!emplo, si queremos que la cach1 se %uarde en 5var5spool5squid, que utilice 9, BD y que cachee hasta +G su$directorios de primer nivel y hasta '8G su$directorios de se%undo nivel, escri$iremos" 55Espacio en disco utilizado por squid cache@dir ufs 5var5spool5squid 9,,,, +G '8G

Confi%uracin del nave%ador de los PCs clientes, para que utilicen el Proxy
)upon%amos que nuestro servidor Proxy tiene la IP +E'.+G6.+.';E y el servidor squid est escuchando en el puerto ;+'6 que es el puerto que utiliza por defecto. Con estos dos datos, la IP y el puerto, ya podemos confi%urar el nave%ador de Internet de los PCs clientes. <ozilla Hirefox Para que Hirefox utilice nuestro Proxy en sus conexiones, de$emos ir a Cerramientas I Apciones I 0vanzado I =ed y en el apartado Conexin, hacer clic en el $otn Confi%uracin. En la ventana que aparece, de$emos confi%urar la IP y el puerto de nuestro servidor Proxy"

.onfiguraci0n del &roxy en *irefox 0 partir de este momento, Hirefox enviar a nuestro Proxy cualquier consulta &e$ que realice, y ser nuestro Proxy quien realizar la conexin en caso necesario. Internet Explorer Para indicar a Internet Explorer que de$e utilizar un Proxy para realizar conexiones, de$emos ir a Cerramientas I Apciones de Internet I Conexiones I Confi%uracin de #02 y activar la casilla JUsar un servidor proxy para la #02J. En la casilla J4ireccinJ pondremos la IP de nuestro Proxy y el JPuertoJ el puerto, tal y como se muestra en la si%uiente ventana"

.onfiguraci0n del &roxy en 'nternet Explorer

0rchivo de confi%uracin automtica del proxy


Para no tener que recordar la direccin del proxy y facilitar la tarea a la hora de confi%urar el proxy en los PCs clientes, existe la posi$ilidad de crear un archivo de confi%uracin automtica del proxy. 4icho archivo indicar al nave%ador, en funcin de la url a la que quiera conectarse, si de$e hacerlo directamente o de$e hacerlo a trav1s del proxy. En un direccionamiento como el que tenemos en nuestro centro, cuando accedemos a nuestra red +,.,.,.,56 o a la direccin de localhost +'K.,.,.+, la conexin de$e ser directa, en cam$io, cuando accedemos a cualquier otra direccin, de$er ser a trav1s de proxy. 550rchivo de confi%uracin automtica del proxy 550rchivo 5var5&&&5proxy.pac function HindProxyHorU=#>url,host?L if >isIn2et>host, M+,.,.,.,M, M'88.,.,.,M?? return M4I=EC3MN else if >isIn2et>host, M+'K.,.,.+M, M'88.'88.'88.'88M?? return M4I=EC3MN else return MP=A-. +E'.+G6.+.';E";+'6MN O

.onfiguraci0n del &roxy a tra$4s de un archi$o de configuraci0n

Permitir o dene%ar el acceso desde ciertos ran%os de IPs


3al y como se ha comentado anteriormente, con squid es sencillo permitir o dene%ar el acceso a Internet por ran%os de IPs. )i tenemos nuestra red dise*ada de forma que cada aula utiliza un ran%o concreto, podremos permitir o dene%ar el acceso a un aula de forma sencilla. Para no tener que tocar el archivo squid.conf, lo me!or es crear una acl que car%ue las aulas desde un archivo externo. Podemos crear con un editor de texto el archivo 5etc5squid5aulas:prohi$idas.txt en el que indicaremos los ran%os de IPs que no queremos que nave%uen. Por e!emplo, si no queremos que nave%uen las aulas ' y ;, el contenido del archivo 5etc5squid5dene%ar:aulas.txt de$er ser" 550rchivo 5etc5squid5aulas:prohi$idas.txt +,.,.'.,5'9 +,.,.;.,5'9 4espu1s tendremos que editar squid.conf para crear una acl que car%ue los ran%os desde el archivo 5etc5squid5daulas:prohi$idas.txt y denie%ue el acceso a dichos ran%os. 550rchivo externo para indicar las aulas a las que no las permitimos nave%ar 55Editar squid.conf e introducir estas dos l/neas" acl aulas:prohi$idas src M5etc5squid5aulas:prohi$idas.txtM http@access deny aulas:prohi$idas Por (ltimo, tan solo tenemos que recar%ar la confi%uracin de squid para que entre en funcionamiento la nueva confi%uracin" 55=ecar%ar la confi%uracin de squid sudo 5etc5init.d5squid reload I%ualmente podemos crear una acl para indicar las urls prohi$idas desde un archivo externo" 550rchivo externo para indicar las urls prohi$idas 55Editar squid.conf e introducir estas dos l/neas" acl urls:prohi$idas dst M5etc5squid5urls:prohi$idas.txtM http@access deny urls:prohi$idas )i no queremos que nuestros alumnos accedan a &&&.sex.com ni a &&&.misvecinitas.com, el contenido del archivo 5etc5squid5urls:prohi$idas.txt de$er/a ser" 550rchivo 5etc5squid5urls:prohi$idas.txt &&&.sex.com &&&.misvecinitas.com #a filosof/a ser/a dene%ar las aulas prohi$idas, dene%ar las urls prohi$idas y lue%o permitir todo lo dems. =esumiendo, nuestro archivo squid.conf ser como el ori%inal con las si%uientes modificaciones, !usto despu1s de la l/nea P I2)E=3 .AU= A72 =U#E>)? CE=E 3A 0##A7 0CCE)) H=A< .AU=

C#IE23) que podr/amos traducir como" Inserte sus propias re%las para permitir acceso a sus clientes" 55=esumen de modificaciones en squid.conf P I2)E=3 .AU= A72 =U#E>)? CE=E 3A 0##A7 0CCE)) H=A< .AU= C#IE23) acl aulas:prohi$idas src M5etc5squid5aulas:prohi$idas.txtM http@access deny aulas:prohi$idas acl urls:prohi$idas dst M5etc5squid5urls:prohi$idas.txtM http@access deny urls:prohi$idas http@access allo& all 0s/, editando los archivos 5etc5squid5aulas:prohi$idas.txt y 5etc5squid5urls: prohi$idas.txt y recar%ando la confi%uracin de squid e!ecutando 5etc5init.d5squid reload, podemos reconfi%urar squid sin necesidad de tocar el archivo de confi%uracin squid.conf. El inconveniente es que cada vez que queremos permitir o dene%ar el acceso a Internet a un aula, tenemos que andar editando el archivo aulas:prohi$idas.txt lo que puede resultar un poco en%orroso. Podemos crear dos scripts de unix que ha%an el tra$a!o por nosotros y solamente ten%amos que e!ecutar los scripts indicando el n(mero de aula que queremos prohi$ir o permitir" 2om$re del script" prohi$ir:aula.sh P5$in5$ash P P )cript para prohi$ir la nave%acin de un aula P )e crear el ran%o del aula en 5etc5squid5aulas:prohi$idas.txt P Indicar el n(mero de aula al e!ecutar el script if Q RP :ne + SN then echo MEs necesario introducir el numero de aula a prohi$irM exit :+ fi echo Prohi$ir nave%ar aula R+, su$red +,.,.R+.,5'9 echo +,.,.R+.,5'9 II 5etc5squid5aulas:prohi$idas.txt 5etc5init.d5squid reload echo su$redes dene%adas" cat 5etc5squid5aulas:prohi$idas.txt 552om$re del script" permitir:aula.sh P5$in5$ash P P )cript para permitir la nave%acin de un aula P )e eliminar el ran%o del aula de 5etc5squid5aulas:prohi$idas.txt P Indicar el n(mero de aula al e!ecutar el script

if Q RP :ne + SN then echo MEs necesario introducir el numero de aulaM exit :+ fi su$redT+,.,.R+.,5'9 echo Permitir nave%ar aula R+, su$red Rsu$red patronTUecho 5+,.,.R+.,5dU cat 5etc5squid5aulas:prohi$idas.txt V sed :e Rpatron I 5tmp5temp.txt cat 5tmp5temp.txt I 5etc5squid5aulas:prohi$idas.txt 5etc5init.d5squid reload echo )u$redes dene%adas" cat 5etc5squid5aulas:prohi$idas.txt )i deseamos que el aula + no nave%ue, de$er/amos e!ecutar" prohi$ir:aula +. )i lue%o deseamos permitir que el aula + nave%ue, tendr/amos que e!ecutar" permitir:aula +. 0(n con los scripts prohi$ir:aula.sh y permitir:aula.sh, si%ue siendo en%orroso realizar cam$ios ya que el profesor tendr/a que iniciar sesin en el servidor por ssh y lanzar el script. #o me!or ser crear una p%ina en PCP con $otones de comando, donde con un simple clic podamos e!ecutar los scripts cmodamente desde el nave%ador.

0nlisis de conexiones
Una de las funcionalidades principales que nos ofrece squid es que re%istra todos los accesos a Internet. Cada vez que un PCs accede a Internet, squid re%istrar en el archivo 5var5lo%5squid5access.lo% la fecha y hora, el PC y la url a la que ha accedido. 550rchivo de re%istro de squid 5var5lo%5squid5access.lo%

Potrebbero piacerti anche