Está en la página 1de 13

Squid Transparente, Optimizado y... protector. Autor: Arturo 'Buanzo' Busleiman <buanzo@buanzo.com.

ar> Bienvenidos a ste, mi segundo artculo para la revista Solo inu!. "o# vuestro servidor les presentar$ una gua de con%iguraci&n # optimizaci&n de S'uid, el %amoso "(() )ro!#*+ac,e ibre # Abierto. Adicionalmente veremos c&mo instruir a nuestro -ernel inu! para .enga/ar. a los clientes de nuestra red 0nterna, para 'ue toda petici&n "(() saliente ,acia 0nternet pase s o s por las manos de S'uid, todo mediante el uso de la utilidad 0ptables, manipuladora de la %uncionalidad de %iltrado de pa'uetes e!istente desde el -ernel inu! 1.2, 3et%ilter. 4 para terminar, una perlita: con%iguraci&n de 5ans6uardian para proveer de %iltrado de contenido para adultos, mu# 7til en +#berca%s # casas de %amilia donde los padres o tutores deseen ,acer uso de sta tecnologa. Introduccin 8!isten una cierta cantidad de trminos 'ue debemos conocer antes de con%igurar un servidor pro!#, sea directo o transparente. 8ntender dic,os trminos nos permitir$ comprender en ma#or pro%undidad los comentarios, e9emplos # documentaci&n 'ue suelen acompa/ar a los pa'uetes de so%t:are de esta categora, # de todo el so%t:are libre en general, as como tambin permitirnos avanzar a7n m$s en este apasionante mundo de las redes, la seguridad # la programaci&n. 8n este caso, trminos como .pro!#. son tomados de %orma incorrecta, # ,ablan de .pro!ies. cuando en verdad ,ablan de un .router., o de 3A(. A tal e%ecto, veamos algunos detalles de estos trminos: Capa de Red y de Aplicacin: ;sualmente debera despac,ar una descripci&n del modelo <S0 te&rico #=o del modelo (+)=0), pero vo# a simpli%icar la cuesti&n. +uando nos re%erimos a la +apa de >ed, estamos ,ablando de toda cuesti&n vinculada con direcciones 0), enrutado, t7neles, %iltrado, etc. 4 claro, cuando ,ablamos de +apa de Aplicaci&n, nos re%erimos a todo lo 'ue tiene 'ue ver con el nivel mas alto de %uncionamiento. Si, adivinaron: las aplicaciones. 8n trminos pr$cticos, entonces, si alguien ,abla de un .?ire:all de +apa de Aplicaci&n., se re%iere a poder implementar %iltrado seg7n par$metros del protocolo de alto nivel. )or e9emplo, el l@*%ilter es una aplicaci&n 'ue pueden encontrar en :::.%res,meat.net 'ue permite %iltrar seg7n aplicaci&n: AS3 Aessenger, ?(), etc, m$s all$ del puerto donde estn ocurriendo dic,as conecciones. B0nteresante, noC Netfilter: ?uncionalidad # es'uema interno del 37cleo inu! en las versiones 1.2 # 1.D 'ue proveen ?ire:all con conocimiento de 8stado EState%ul ?ire:allF. ;n %ire:all, o corta%uegos, ,abilita la capacidad de aplicar polticas sobre los pa'uetes, como por e9emplo Gpermitir acceso desde cual'uier 0) al puerto HI de la inter%az et,IJ, o tal vez Gdenegar el acceso al puerto 11, e!cepto a las 0) K, 1 # LJ. a cuesti&n de conocimiento de estado est$ vinculada con'ue 3et%ilter mantiene una tabla de las conecciones entrantes # salientes, # de esta %orma nos permite armar reglas en base a par$metros .de estado., como conecci&n establecida, relacionada o nueva. )or e9emplo, supongan 'ue de H a KM,s se permiten nuevas conecciones salientes ,acia 0nternet. )asado este ,orario podramos armar una regla 'ue especi%i'ue 'ue solamente las conecciones relacionadas o establecidas, pero no nuevas puedan seguir saliendo a 0nternet. 5e esta %orma, la descarga de un arc,ivo continuar$ ,asta su %in, incluso pasado este ,orario, pero no se podr$ ingresar a nuevos sitios. BNu tiene esto 'ue ver con un )ro!# (ransparenteC Simple: 3et%ilter tambin permite aplicar ciertas reglas de redireccionamiento, no solo las cl$sicas de GA+8)(A>J # G>8+"AOA>J. 8n resumen, vamos a tener 'ue aplicar un par de

reglas de 3et%ilter E'uiz$ a la ma#ora les suene mas por su con9unto de utilidades, 0ptablesF para lograr nuestro acometido. es recomiendo la lectura de algunos artculos sobre 0ptables introductorios, o me9or a7n, leer de pies a cabeza la p$gina del manual para .iptables.. ro!y: Auc,a gente con%unde el trmino )ro!# con el de 6ate:a# Eo Gpuerta de enlace predeterminadaJ, seg7n la traducci&n de cierta empresa de so%t:are privativoF. 8n toda red (+)=0), por e9emplo en una red privada KM1.KDH.I.I +lase + EA$scara 1PP.1PP.1PP.I o '=12'F, se necesita un gate:a# si es 'ue deseamos llegar a otras redes, como 0nternet. 5ic,o 6ate:a# poseer$ la cantidad de inter%aces necesarias # rutas establecidas # polticas de acceso 'ue permitir$n o no el acceso a ciertos destinos desde esta red interna. )or supuesto, en este caso ,ablamos de acceso GtransparenteJ Epor as decirloF a la red destino en cuesti&n. 8sto signi%ica 'ue el 6ate:a# no tiene en cuenta el protocolo de aplicaci&n E"((), ?(), etcF o me9or dic,o 'ue Gno los entiende ni tiene en cuenta e!cepto por puerto de origen o destinoJ. )or e9emplo, se puede asumir 'ue en el puerto HI de cierta 0) de destino ,abr$ un servicio 'ue entienda "(()... pero el gate:a# no puede asegurarlo. ;n pro!# act7a como gate:a# pero a un nivel m$s alto, en la llamada Gcapa de aplicaci&nJ. Signi%ica 'ue entiende "((), ?(), u alg7n otro protocolo de alto nivel, # 'ue acepta por parte de un cliente Ede la red interna, por e9emploF solicitudes vinculadas a dic,o protocolo. 8l pro!# realizar$, a su vez, la solicitud al servidor de destino, tomar$ el resultado # lo devolver$. Al tener conocimiento del protocolo se pueden aplicar reglas muc,o m$s interesantes, como restricciones basadas en contenido, partes del nombre de un sitio, usuario, grupo al 'ue un usuario pertenece, 0) de origen, etc. S'uid es un pro!# de "(() # ?(), # a su vez provee la %uncionalidad de cac,e: guarda copias de las p$ginas # arc,ivos visitados. 5e esta %orma, cada vez 'ue un usuario vuelve a acceder a cierto sitio, s&lo el contenido 'ue ,a#a cambiado ser$ trans%erido, logrando una reducci&n de la utilizaci&n del anc,o de banda disponible. 8n resumen, el cliente no accede realmente a internet, sino 'ue le solicita al pro!# lo 'ue 'uiere, el pro!# a su vez lo busca en 0nternet, lo trans%iere, # luego se lo da al cliente. 8s menos directo, si, 'ue 3A(, donde se traba9a a nivel (+)=0) # no a nivel aplicacion. NAT: +orresponde a 3et:or- Address (ranslation o (raducci&n de 5irecci&n de >ed. as direcciones 0) de una red privada no son direccionables en 0nternet, por lo 'ue el 6ate:a# suele aplicar lo 'ue se llama comunmente GenmascaramientoJ EAas'ueradingF de la 0) de origen, reemplazando la interna por la correspondiente a la inter%az de red p7blica del 6ate:a#. )or supuesto, se mantiene una tabla con los datos necesarios para poder relacionar las respuestas 'ue provengan de internet con su destino GrealJ en la red privada. Transparente: Bien, #a sabemos 'ue es un 6ate:a#, 3et%ilter # un )ro!#. 8l ,ec,o de 'ue sea transparente permite al administrador lograr 'ue toda solicitud "(() Epuerto de destino HI=tcpF realizada por un cliente de la red interna sea autom$ticamente redirigida al )ro!#, evitando la salida directa. os motivos para realizar sto pueden depender del administrador, pero seguramente tengan 'ue ver con polticas de administraci&n de recursos, seguridad, per%ormance, etc. 8sto se realiza, como #a di9imos, mediante reglas de redireccionamiento de 3et%ilter Eaplicadas con la utilidad 0ptablesF. 8S 0A)<>(A3(8 A+ A>A> 'ue cierta %uncionalidad del protocolo "(() se pierde al utilizar un pro!# transparente en vez de uno debidamente con%igurado en los clientes. Qa m$s atll$ del prop&sito de ste artculo el e!plicar dic,os problemas. A modo general podemos responder Gprobablemente no tengas problemas notablesJ. a pr$ctica ser$ lo me9or.

"enta#as y $es%enta#as Qeamos las venta9as de usar S'uid: KF Soporta "(() # ?(). 1F (iene un avanzado mecanismo de autenti%icacion # control de acceso Eo sea, a 'uien # cuando permitimos utilizar el pro!#F. LF )ermite actuar como 'cac,e' de 0nternet, copiando contenido en %orma local para 'ue se lo pueda accesar r$pidamente. 2F 8s So%t:are ibre. A,ora, las desventa9as, pero de usar un )ro!# en general: KF a ma'uina donde %uncionara el )ro!# debe tener capacidad de almacenamiento acorde a la cac,e 'ue necesitemos o 'uerramos. 1F 5ebe tener un buen poder de procesamiento, #a 'ue no es solo un 'reenvio' de pa'uetes tcp=ip. >ecuerden 'ue estamos traba9ando en la +apa de Aplicaci&n. LF 8n modo transparente e!isten algunos problemas de compatibilidad Emnimos, pero e!istenF. 2F "a# 'ue con%igurar la utilizacion del )ro!# en cada cliente E,a# 1 %ormas de salvar este inconveniente, 'ue veremos mas adelanteF. Confi&uracin 'en(rica de Squid o principal es saber 'ue el sitio o%icial es :::.s'uid*cac,e.org # no :::.s'uid.org. 5e ,ec,o es tan com7n esta e'uivocaci&n 'ue :::.s'uid.org tiene un mensa9e .B8st$ buscando la +ac,eC "aga clic- sobre esta ;> .. 5esde el sitio o%icial de S'uid podemos ba9ar la ultima version de desarrollo E58Q8 F, 'ue es el codigo %uente .no*estable.. Sino, podemos ba9ar la version .estable. ES(AB 8, recomendada para sistemas en produccionF. Si nos acercamos a S'uid como programadores, por'ue 'ueremos e!tenderlo o corregir algun error, debemos utilizar la version 58Q8 , o acceder mediante +QS E#a trataremos este tema mas adelanteF. Al momento de escribir este articulo, la ultima version estable del S'uid +ac,e es la 1.P*S(AB 8@. )ueden ele9ir entre %ormato tar.gz o . tar.bz1 * )ara descomprimir un tar.bz1 o tbz1, utilicen el par$metro .*9. del tar, en vez del .*z.. 8l bzip1 comprime generalmente me9or. Qo# a asumir 'ue instalaremos el S'uid desde sus %uentes. 8ste mtodo de instalaci&n sirve para tener una idea de lo 'ue los pre*empa'uetados o lo 'ue las distribuciones basadas en %uentes ,acen o pueden pedirnos 'ue ,agamos post* instalaci&n. ;na vez 'ue ,a#amos ba9ado # desempa'uetado el arc,ivo de la distribuci&n de S'uid, cambiemos al directorio donde 'uedo almacenado, # e9ecutemos las L %amosas sentencias de compilacion: KF .=con%igure **pre%i!R=usr=local=s'uid * )ara 'ue el S'uid, sus binarios, arc,ivos de con%iguracion, etc, esten en =usr=local=s'uid. 1F Si el paso K termino sin problemas, podemos ,acer 'ma-e'. LF A,ora, 'ma-e install', para copiar los arc,ivos necesarios a las ubicaciones establecidas dentro de la 9erar'uia =usr=local=s'uid NOTA: Si utilizan 6entoo, un simple .emerge s'uid. es m$s 'ue su%iciente. >ecuerden prestar atenci&n a las instrucciones 'ue aparezcan al %inalizar el emergeS ;na vez compilado e instalado el S'uid, debemos con%igurarlo. A decir verdad esto

es bastante simple: el arc,ivo de con%iguracion s'uid.con% Een =usr=local=s'uid=etcF esta 83< de parametros, pero solo unos pocos debemos modi%icar S0 o S0. 8l S'uid, como lo indica su documentacion, tiene muc,as %unciones, pero solo utilizaremos lo mas basico al comienzo. 8ditemos el s'uid.con% con el editor 'ue mas nos guste. Qeran 'ue es de un estilo mu# simple: bien comentado, pero cada parametro de con%iguracion es una linea, 'ue contiene un parametro o comando, # una serie de valores. Antes de empezar a modi%icar estos valores, seria conveniente leer todo el s'uid.con% completo, para tener una idea, una vision general de lo 'ue se puede ,acer desde alli, de esta %orma si un dia tenemos 'ue ,acer algo en particular, 'uiza podamos recordar si ,acerlo desde s'uid.con% o desde otro lado. 8l primer parametro a tocar es 'cac,eTmem'. 8speci%ica la cantidad de memoria Eno de disco duroF 'ue S'uid utilizar$. Seg7n recomendacion de los autores, si tenemos .U. >AA libre 'ue 'uerramos dedicar al S'uid, pongamos a'ui un (8>+0< de dic,o valor EU=LF. uego podemos seguir por 'cac,eTdir', donde especi%icaremos el donde # el cuanto de la +ac,e. )or e9emplo: 'cac,eTdir =usr=local=s'uid=cac,e KII KD 1PD'. 8l valor KII indica 'KII AB de cac,e'. Al KD # al 1PD es probable 'ue no necesitemos nunca cambiarlos, e indican al S'uid como utilizar los KIImb. uego veremos como optimizar esta sentencia. A,ora viene algo importante: las reglas de acceso # el acceso a los protocolos ,ttp e icp. )or de%ecto 'uerremos permitirle la utilizacion del )ro!# a nuestra red interna solamente. 8l siguiente blo'ue es un e9emplo para una red KM1.KDH.KI.I con mascara 1PP.1PP.1PP.I. Se permitira acceso toda esta red # al local,ost=K1@.I.I.K, esto se logra de%iniendo 2 acl's: la del administrador Ede uso interno del S'uidF, la de local,ost, una global 'ue ,able de (<5A direccion 0) posible # la de permitidos Enuestra red privadaF. 8n este e9emplo, asumimos una red privada clase + KM1.KDH.KI.I a la cual denominamos .permitidos.. a regla acl .todos. generalmente se denomina .all. en S'uid, # viene de%inida por de%ecto. A'u la tradu9e a e%ectos de 'ue sea mas claro el e9emplo. acl local,ost src K1@.I.I.K=1PP.1PP.1PP.1PP acl todos src I.I.I.I=I.I.I.I acl permitidos src KM1.KDH.KI.I=1PP.1PP.1PP.I ,ttpTaccess allo: permitidos local,ost ,ttpTaccess den# todos icpTaccess allo: permitidos local,ost icpTaccess den# todos os indicadores 'den#' # 'allo:' signi%ican .denegar. # .permitir., respectivamente, a las solicitudes 'ue concuerden con las A+ de%inidas mas arriba en cada protocolo. 8l orden es de 'allo:, den#'. )rimero indico a 'uienes permito, luego deniego a todos los demas. Nuiza 'uieran ,acer esto por cada V)><(<+< <WTaccess 'ue les parezca. Nuiza 'uerramos modi%icar el 'cac,eTmgr', para indicar la direccion de eAail nuestra, asi si algun usuario tiene problemas, sabe a 'uien contactar. 'visibleT,ostname' indicara el nombre del "ost 'ue se publicara en paginas de error, etc, generadas por S'uid. uego, debemos indicar con 'ue usuario # grupo debe %uncionar el S'uid luego de

,aber sido iniciado con root desde los scripts de inicio Eo a mano por el root mismoF. 8sto lo ,acemos con 'cac,eTe%%ectiveTuser' # 'cac,eTe%%ectiveTgroup'. Qalores recomendados: algo del estilo 'nobod#' # 'nogroup'. ;na vez editado el s'uid.con%, debemos inicializar la cac,e, # luego e9ecutar el S'uid. 8sto lo ,acemos de la siguiente %orma: 0nicializar la cac,e: =usr=local=s'uid=bin=s'uid *z 89ecutar el S'uid: =usr=local=s'uid=bin=s'uid A,ora, debemos revisar =usr=local=s'uid=logs=cac,e.log. 5ebemos %i9arnos si esta todo bien. Qan a encontrar un par de errores al principio de todo, algo comun la primera vez 'ue se e9ecuta el S'uid. ;na vez andando, debemos probarlo: va#amos a un cliente, con%iguremos el uso del pro!# para el protocolo "(() en el puerto LK1H Eel por de%ecto de S'uid, el cual se puede cambiar con ',ttpTport'F # listo. Si anda, per%ecto. Si no, veri%i'uen 'ue el S'uid este e9ecut$ndose E'ps a!', 'nmap', Xlso% *i(+):LK1H', etcF. )Transparentizacin) del Squid ;na vez con%igurado el S'uid, debemos probarlo en %ormato Gno*transparenteJ, con%igurando un navegador para 'ue lo utilice. >ecuerden 'ue S'uid utiliza el puerto LK1H=tcp para recibir las solicitudes. Si %unciona, podemos pasar a la siguiente etapa: la transparentizaci&n ESCF de S'uid. 8n principio, son s&lo 2 los par$metros los 'ue debemos con%igurar. ;no de estos par$metros no lo encontrar$n comentado # con un valor por de%ecto, sino 'ue deber$n tipearlo desde cero. os par$metros # sus correspondientes valores, son los siguientes: ,ttpdTaccelT,ost virtual ,ttpdTaccelTport HI ,ttpdTaccelT:it,Tpro!# on ,ttpdTaccelTusesT,ostT,eader on BNu signi%ica cada uno de ellosC *ttpd+accel+*ost : S'uid puede con%igurarse como cac,e, como acelerador de navegaci&n o como ambos. 8ste par$metro indica el nombre de ,ost o 0) de un S'uid con%igurado como acelerador. 8n nuestro caso usaremos el valor GvirtualJ, #a 'ue vamos a usar el modo transparente. *ttpd+accel+port : 8ste es el puerto donde generalmente los servidores :eb esperan solicitudes. 8n el caso de 'ue usemos S'uid como %rente de un grupo de servidores :eb locales, ,abria 'ue ,acer 'ue S'uid escuc,e en el HI # no en el LK1H, # 'ue los servidores :eb escuc,en en otro puerto, # 3< en el HI. *ttpd+accel+,it*+pro!y : Al ,abilitar ,ttpdTaccelT,ost la %unci&n de cac,e de9a de %uncionar. )ara 'ue vuelva a %uncionar, debemos %orzarlo con el valor GonJ. *ttpd+accel+users+*ost+*eader : 8n modo transparente, las solicitudes salientes al puerto HI de algun servidor e!terno son redirigidas al puerto LK1H del 6ate:a#, en el 'ue S'uid espera solicitudes. Si no se ,abilitara esta opci&n los sitios 'ue mane9en sitios :eb virtuales, o sea, mas d eun sitio por direcci&n 0), no seran correctamente cac,eados. a cabecera "ost de%inida en "(() K.K siempre tiene como valor el nombre de "ost de la ;> a donde estemos intentando navegar.

S'uid, si se ,abilita este par$metro, la utiliza # nos entrega el contenido re'uerido. Re&las de Netfilter - .ltimo paso ;na vez con%igurado S'uid con las opciones de pro!# transparente re'ueridas, tan solo nos 'ueda armar la regla de 0ptables necesaria. Si utilizan S,ore:all como soluci&n de ?ire:all Emu# buena, por ciertoF, en su ?AN # 5ocumentaci&n encontrar$n como crear esta regla desde su sistema de con%iguraci&n. Ever recuadroF. a regla en cuesti&n es la siguiente: iptables *t nat *A )>8><;(036 *i et,K *p tcp **dport HI *9 >850>8+( **to*port LK1H 8n este caso asumimos 'ue .et,K. es nuestra inter%az de red conectada a la red privada. >ecuerden 'ue el arc,ivo access.log Ede%inido en s'uid.con%F nos ir$ mostrando las solicitudes 'ue se realizan, # as podremos veri%icar el correcto %uncionamiento de la regla de direccionamiento. )ueden ver un script de %ire:all simple para un gate:a# 'ue solo admite SS" en el recuadro. Optimizacin /0sica 8!isten P par$metros 'ue pueden ,acer la di%erencia entre un S'uid lento # pesado contra uno agil # de buen nivel de respuesta. "agan los siguientes cambios en s'uid.con%: cac,eTstoreTlog al valor none ,al%TclosedTclientes al valor o%% cac,eTs:apT,ig, al valor KIIY cac,eTs:apTlo: al valor HIY 5e la misma %orma se puede establecer correctamente el par$metro cac,eTdir con la siguiente %&rmula: Siendo: ! R (ama/oTdeTcac,eTenTZB # R (ama/oTdeTob9etoTpromedioTenTZB Eapro!. KHZbF 8l valor A5 ser$ EEE! = #F = 1PDF = 1PDF [ 1 a lnea cac,eTdir, entonces, ser$, por e9emplo, para D6b de cac,e: cac,eTdir u%s =var=cac,e=s'uid DK22 K2 1PD

?iltrado de +ontenido para Adultos


El da de hoy no es raro para nada encontrar usuarios de GNU+Linux cuyos hijos utilizan tambin GNU+Linux. Si hay acceso a la eb! un padre puede preocuparse. Existe so"t#are $pen Source %ue puede ayudarlos. &%u 'eremos una soluci(n tcnica puntual para una computadora con GNU+Linux desde la cual se acceda a la orld ide eb. &dicionalmente! hemos realizado una corta serie de pre)untas a una in'esti)adora en el campo de la protecci(n in"antil!

Noelia Ne)ri! %uin junto con un )rupo de personas analizan la proli"eraci(n de la pedo"lia en *nternet! y hacen al)o al respecto. Solicitaron no decir m+s %ue lo dicho! por lo %ue ahora comenzaremos con nuestro artculo. ,elicitaciones Noelia y asociadosDiferencias Tcnicas Existen principalmente tres "ormas de identi"icar sitios potencialmente o"ensi'os o inapropiados para los menores de edad. En base a par+metros en la U/L 0direcci(n del sitio1 lo %ue incluye bases de datos y listas de sitios a prohibir 0blac2lists! un trmino com3n en pa%uetes como s%uidGuard1! en base a "rases comunmente utilizadas en sitios porno)r+"icos! o en base al 4ratin)4 de un sitio! ser'icio o"recido por terceros o por el realizador de un sitio #eb 0usalmente mediante el mecanismo 5*6S 7 5lat"orm "or *nternet 6ontent Selection 8 5lata"orma para Selecci(n de 6ontenido de *nternet1. En esta )ua 'amos a hablar de una aplicaci(n llamada 9ansGuardian! %ue act3a como intermediario entre el na'e)ador e *nternet! o entre el na'e)ador y un 5roxy 0y! subsecuentemente! *nternet1. 5odramos decir %ue 9ansGuardian es! en si msmo! un 5roxy! aun%ue el autor nos aclara %ue en 'erdad es un redirector de las solicitudes! con una etapa pre'ia de "iltrado. 9ansGuardian "unciona en Linux! ,ree:S9! $pen:S9! Net:S9! ;ac $S <! =57U< y Solaris. Entre los mtodos de "iltrado %ue 9ansGuardian implementa se incluyen los ya nombrados basados en U/L y nombre de dominio! por "rases en el contenido! por cali"icaci(n o eti%uetado 5*6S! se)3n tipo de archi'o 0mediante los tipos ;*;E1! por extensi(n del nombre de archi'o. Entre otras caractersticas! soporta "uncionar 4al re's4! especi"icando una lista de sitios '+lidos a los cuales un na'e)ante puede acceder! dene)ando al resto de *nternet.>iene un modo in'isible de "uncionamiento! en el cual los na'e)antes no saben %ue est+n siendo 'i)ilados. En este modo! se reporta en un archi'o lo) los sitios %ue se habran blo%ueado! pero no se los blo%uea. Entre otras 'entajas! es mucho m+s r+pido %ue s%uidGuard en lo %ue a "iltrado basado en U/L se re"iere. En este parra"o intent dar a entender %ue 9ansGuardian es mucho mas complejo y potencialmente 3til de lo %ue en esta )ua 'eremos. 5ero ya es hora de trabajar. Comencemos &sumiremos la si)uiente 4cadena4 para lle)ar a *nternet. Na'e)ador 7 Gate#ay 7 9ansGuardian 7 S%uid 7 *nternet El na'e)ador no necesitar+ ser con"i)urado para utilizar 9ansGuardian. Utilizaremos Net"ilter para %ue sea 4transparente4! 'ariando la re)la de Net"ilter utilizada con S%uid. &>EN6*$N. Si deciden utilizar DansGuardian por delante de Squid, las ACL van a dejar de funcionar, ya que las solicitudes vendran siempre desde la IP donde funciona DansGuardian !l autor propone dos alternativas" Aplicar un parc#e al Squid para que reconozca la ca$ecera %&'or(arded&)y, o colocar a DansGuardian por detr*s del Squid +o daremos m*s detalles, C-mo tar.a para el lector, asumiremos que no e/iste una red privada que acceda a los Internet, sino una sola computadora donde funciona tanto nave0ador, como filtrador 1y2 pro/y, desde la cual nave0a la familia 6omo deben suponer! 9ansGuardian reen'iar+ las solicitudes %ue reciba del na'e)ador al S%uid! por lo %ue todo se resume en una cuesti(n de puertos! direcciones *5 y comandos de *ptables. =aremos escuchar a 9ansGuardian en el puerto ?@?@ de la *5 ABC.@.@.A 0recuerden %ue en esta )ua asumimos UN& sola

computadora! y no una red pri'ada1! y al S%uid en el puerto DAB? de ABC.@.@.A. 9ansGuardian "uncionar+ bajo el entorno del usuario y )rupo asi)nado a s%uid 0)eneralmente usuario s%uid! )rupo s%uid1. 9esde ya! la habilitaci(n del "iltrado se puede realizar en base al usuario %ue est+ utilizando el na'e)ador! por lo %ue es importante %ue tanto 9ansGuardian y S%uid compartan usuario y )rupo. En el caso de %ue utilicen la distribuci(n Gentoo! podr+n instalar todo lo necesario con el comando. emer)e dans)uardian s%uid iptables E lue)o podr+n habilitar s%uid y dans)uardian en el inicio del sistema con. rc7update add s%uid de"ault rc7update add dans)uardian de"ault 6aso contrario! el procedimiento normal de compilaci(n 0.8con"i)ure FF ma2e FF ma2e install! 'er secci(n S%uid y aplicarla a 9ansGuardian1 se aplica sin mayores problemas! lue)o de descar)ar 9ansGuardian y desempa%uetarlo con tar -zxvf DansGuardian-VERSION-source.tar. z. >ambin pueden elejir descar)ar los /5; %ue existen disponibles para.

,edora 6ore B ;andra2e ?.x 9ebian

En ###.rpmsearch.net pueden encontrar m+s. >al 'ez necesiten utilizar el par+metro 77nodeps de rpm para poder instalar al)uno de estos pa%uetes. Si as lo desean! pueden ele)ir instalar #ebmin en "orma adicional! ya %ue existe un m(dulo de con"i)uraci(n de 9ansGuardian para ebmin! el cual tambin se descar)a desde el sitio de 9ansGuardian o desde su sitio o"icial 0'er recuadro1. Confi uraci!n de DansGuardian Una 'ez instalado 9ansGuardian! su archi'o de con"i)uraci(n! denominado dans)uardian.con" se encontrar+ en el directorio 8etc8dans)uardian. Si no lo encuentran! intenten Glocate dans)uardian.con"G 0si usan updatedb1! o el simple pero e"ecti'o find " -name dans uardian.conf. El archi'o de con"i)uraci(n tiene DC@ lneas! de las cuales s(lo HA son sentencias de con"i)uraci(n! y! de las cuales! en esta )ua! solo 'eremos A@. 9ansGuardian es complejo! se pueden modi"icar par+metros de red! de per"ormance! y ob'iamente de restricci(nes y al)ortmos de decisi(n. En nuestro caso! modi"icaremos el idioma en %ue 9ansGuardian mostrar+ mensajes! el usuario y )rupo bajo el cual "uncionar+! c(mo y d(nde se )uardar+ el archi'o lo)! etc. Los primeros ? par+metros los encontrar+n casi al principio del archi'o! y los 3ltimos dos al "inal 0aproximadamente en la linea DIA1! y son los si)uientes. reportin)le'el 7 Este par+metro indica %ue tanta in"ormaci(n daremos al na'e)ante cuando se le prohba in)resar a un sitio. 6on el 'alor B se dar+ un reporte completo. 6on el D 0'alor por de"ecto1 podremos especi"icar una plantilla =>;L a utilizar. 6on @ tan solo se dir+ 4&cceso 9ene)ado4.

lan)ua)e 7 En nuestro caso! podremos seleccionar entre s(lo B 'ariante del espaJol. 4arspanish4! en caso de pre"erir el EspaJol &r)entino! o 4mxspanish4 en el caso de ;jico. $tros len)uajes disponibles pueden encontrarse en el directorio indicado por lan)ua)edir. lo)"ile"ormat 7 El "ormato en %ue deseamos %ue 9ansGuardian escriba al archi'o lo). 5or de"ecto! el 'alor A indica el "ormato 9ansGuardian. Se puede usar un 6SK 0Kalores separados por coma1 con el B! o el "ormato de access.lo) de S%uid con el D. El L separar+ los campos con un >&:. lo)location7 E con este par+metro! podemos especi"icar donde )rabar el lo). 5or de"ecto 'iene comantado. 9eben especi"icar un directorio al cual el usuario con el %ue 9ansGuardian "uncione ten)a acceso de escritura. "ilterip 7*ndica en %ue direcci(n 0una sola1 escuchar+ 9ansGuardian. 5or de"ecto escucha en >$9& direcci(n *5 disponible! incluso nuestr *5 de *nternet- En nuestro ejemplo! usaremos el 'alor ABC.@.@.A "ilterport 7 5uerto en el %ue escuchar+ 9ansGuardian. 5or de"ecto! y acorde a nuestro ejemplo! se utiliza el puerto ?@?@. proxyip 7 9irecci(n *5 del ser'idor proxy. En este caso el 'alor por de"ecto si)ue siendo acorde a nuestro ejemplo! y es ABC.@.@.A. 9ansGuardian lo utilizar+ para descar)ar las p+)inas %ue sean admitidas por el "iltro. proxyport 7 S%uid por de"ecto escucha en el puerto DAB?. Mustamente! es el 'alor por de"ecto de este par+metro. daemonuser 7 Usuario con el %ue "uncionar+ 9ansGuardian. 9ebe ser el mismo %ue utilice S%uid! tomando del par+metro cacheNe""ecti'eNuser de s%uid.con" 0'er secci(n *ptables1. daemon rou# 7 Grupo con el %ue "uncionar+ 9ansGuardian. 9ebe ser el mismo %ue utilice S%uid! tomando del par+metro cacheNe""ecti'eN)roup de s%uid.con" 0'er secci(n /e)las de Net"ilter1. Re $as de Netfi$ter Los comandos *ptables para implementar el redireccionamiento transparente en este caso son m+s interesantes! ya %ue haremos uso del m(dulo 4o#ner4 de Net"ilter! para especi"icar cu+l es el usuario %ue est+ ejecutando el proceso %ue intenta acceder al puerto ?@ de destino. 9e esta "orma tambin implementamos %ue usuarios tendr+n excepci(n! y pasar+n directamente al S%uid! sin "iltrado intermedio. Si ya tu'ieramos un proxy s%uid "uncionando desde antes! sera mas simple tomar el usuario y )rupo %ue S%uid utiliza! y aplicarlos al 9ansGuardian en sus parametros daemonuser y daemon rou#. 5ara obtener el nombre de usuario y )rupo! podemos utilizar el comando re#! asumiendo %ue el archi'o de con"i)uraci(n de s%uid se encuentra en 8etc8s%uid8s%uid.con". 5ara obtener el usuario. )rep cacheNe""ecti'eNuser 8etc8s%uid8s%uid.con" O )rep 7' PQ 5ara obtener el )rupo. )rep cacheNe""ecti'eN)roup 8etc8s%uid8s%uid.con" O )rep 7' PQ

El re# -v %& es para "iltrar las lneas %ue comiencen con Q! %ue seran comentarios. &sumamos %ue el usuario 4buanzo4 ser+ exempto del "iltrado! y %ue el usuario y )rupo de s%uid son s%uid y s%uid respecti'amente. En este caso los comandos *ptables necesarios seran los si)uientes. ipta$les ipta$les ipta$les ipta$les ipta$les &t &t &t &t &t nat nat nat nat nat &A &A &A &A &A 345P45 345P45 345P45 345P45 345P45 &p &p &p &p &p tcp tcp tcp tcp tcp &&dport &&dport &&dport &&dport &&dport 67 &m o(ner &&uid&o(ner squid &j ACC!P5 89:6 &m o(ner &&uid&o(ner squid &j ACC!P5 67 &m o(ner &&uid&o(ner rcarlos &j ACC!P5 67 &j ;!DI;!C5 &&to&ports 6767 89:6 &j ;!DI;!C5 &&to&ports 6767

9e esta "orma! incluso un menor %ue %uiera 4saltearse4 el "iltrado! y acceder directamente al S%uid proxy o a *nternet! no podr+ hacerlo! excepto! claro est+! %ue lo)re utilizar el usuario 4rcarlos4. &>EN6*$N. Esos comandos N$ S$N un script de ,ire#all completo! ni intentan serlo! tan solo son los comandos %ue implementan la "uncionalidad %ue necesitamos. El orden en %ue se ubi%uen en un archi'o de re)las de"inir+n si "uncionar+n o no. Si utilizan Shore#all! con a)re)ar esos comandos al archi'o start ubicado en el directorio de con"i)uraci(n de Shore#all! debera alcanzar. 0Generalmente! 8 etc8shore#all1. 'ina$izando Existen otras alternati'as para realizar el "iltrado! como s%uidGuard! pero el mismo principalmente se basa en listas ne)ras 04blac2lists41! %ue tambin se pueden utilizar con 9ansGuardian sin cambios. 9ansGuardian pro'ee mecansmos de detecci(n m3chisimo m+s e"ecti'os! y pro'ee mtods para reemplazar im+)enes! ejecutar scripts 6G* o para crear b+sicas re)las de control de acceso editando archi'os de con"i)uraci(n adicionales. No es mi intenci(n presentar un an+lisis completo de administraci(n e instalaci(n de un ser'idor de "iltrado de contenidos basado en S%uid! 9ansGuardian y Net"ilter! pero s una soluci(n relati'amente simple de implementar! y %ue sir'a a los padres. &cerca de listas ne)ras actualizadas! pueden bajar una de urlblac2list.com! secci(n 9o#nload! donde tambin pueden subscribirse para recibirlas. El precio de subscripci(n 'ara dependiendo del tipo de uso! "recuencia de actualizaci(n y cantidad de usuarios. El hecho de %ue el so"t#are utilizado sea abierto nos permite obtener mayor se)uridad! sabiendo %ue hay m+s )ente utiliz+ndolo y re'is+ndolo! y encontrando y resol'iendo errores %ue podran hacer "allar a 9ansGuardian! de "orma tal %ue su "unci(n sea e'itada. 6omo comentario "inal! la educaci(n constante de nuestros hijos es lo %ue debe hacer la di"erencia. No una aplicaci(n. (istado de )R(s *ti$es S%uid . http.88###.s%uid7cache.or)8 */6ache. http.88###.ircache.net8

Shore#all . http.88###.shore#all.net8 9ansGuardian. http.88dans)uardian.or) ;(dulo ebmin 9ansGuardian. http.88s".net8projects8d)#ebminmodule Script ,ire#all de Ejemplo. http.88blo).buanzo.com.ar8datos8sololinuxN"#.sh

Recuadro+ Script de ,ire#all para red pri'ada ARB.AI?.A@.@8BL con N&> y S%uid 5roxy transparente! sin nin)3n ser'icio accesible desde *nternet. Q-8bin8sh Q *nter"az 'inculada a *nternet *NE>N*,SethA Q*nter"az 'inculada a la red pri'ada 5/K>N*,Seth@ QSi tenemos *5 "ija! de"inamosla a%ui y utilicemos la re)la de SN&> Q6aso contrario! habilitemos la re)la de ;&STUE/&9E *5N5U:L*6&SA.B.D.L Q Limpieza iptables 7t nat 7, iptables 7, iptables 7< iptables 7t nat 7< Q 5oliticas 0para el ho)ar! todo sale! nada entra1 iptables 75 *N5U> 9/$5 iptables 75 ,$/ &/9 &66E5> iptables 75 $U>5U> &66E5> Q ,iltrado de Entrada iptables 7& *N5U> 7i lo 7j &66E5> Q 5odriamos "iltrar 6*E/>$S pa%uetes del *6;5! dejemoslo para otro articulo iptables 7& *N5U> 7i U*NE>N*, 7p icmp 7j &66E5> Q 9ejamos entrar lo %ue este relacionado con conecciones existentes! y Q tambien las ya establecidas. iptables 7& *N5U> 7i U*NE>N*, 7m state 77state /EL&>E9!ES>&:L*S=E9 7j &66E5> iptables 7& *N5U> 7i U5/K>N*, 7p tcp 77dport ?AA@ 7j &66E5> iptables 7& *N5U> 7i U5/K>N*, 7p tcp 77dport DAB? 7j &66E5> iptables 7& *N5U> 7i U5/K>N*, 7p udp 77dport HD 7j &66E5> Q =abilitar *nternet para la red interna con SN&> 0si tenemos *5 publica "ija1 echo A V 8proc8sys8net8ip'L8ipN"or#ard iptables 7t nat 7& 5/E/$U>*NG 7i U5/K>N*, 7p tcp 77dport ?@ 7j /E9*/E6> 77to7port DAB? Q Si tu'iesemos *5 dinamica de *nternet! hariamos ;&STUE/&9E Q y comentariamos la linea de SN&> anterior. Q iptables 7t nat 7& 5$S>/$U>*NG 7o U*NE>N*, 7j ;&STUE/&9E iptables 7t nat 7& 5$S>/$U>*NG 7o U*NE>N*, 7j SN&> 77to7source U*5N5U:L*6& 77 En el caso de Gentoo! )uarden este archi'o en 8'ar8lib8iptables. Ejec3tenlo! recuerden setearle el bit de ejecuci(n con chmod +x! y si todo "unciona! ejecuten 8 etc8init.d8iptables sa'e. 9e esta "orma! las re)las ser+n )uardadas y reestablecidas en el pr(ximo inicio. No ol'iden a)re)ar iptables al de"ault runle'el! con rc7update add iptables de"ault.

Entrevista a Noe$ia Ne ri - Investi adora Inde#endiente. En $a decada #asada $os #adres contro$a,an $o -ue sus .i/os mira,an en $a te$evision. Con $a actua$ Internet0 cu1o uno de sus #rimeros usos fue e$ de distri,uir #orno rafia0 2-u ti#o de contro$ considera a#$ica,$e3 6reo %ue el mejor control es aplicar "iltros a los sitios %ue son impropios para los niJos. Sin embar)o! *nternet es pr+cticamente imposible de controlar ya %ue no se compone unicamente de sitios #eb! sino de otras utilidades como el e7mail! los "oros! el chat etc. Los chicos se relacionan constantemente por estos medios con personas 'irtuales y an(nimas %ue ellos mismos no conocen personalmente! mucho menos sus padres. 5or eso! aun%ue los "iltros sean e"icaces! son insu"icientes. Seria bueno %ue los pap+s animen a sus hijos a charlar sobre el uso %ue ellos hacen de la /ed y %ue se interesen en las amistades 'irtuales %ue hacen sus hijos! sin in'adir su pri'acidad pero controlando %ue sean ino"ensi'as. En c1,ercafs e$ acceso a $a #orno raf4a sue$e ser m5s 26$ una o#ini!n a$ res#ecto3 enera$izado.

Los cyberca"es deberan aplicar "iltros para contenidos adultos. 5ero ademas! procurar %ue los mayores no accedan a dichos sitios cerca de los niJos. &dicionalmente! los administradores del cyberca"e debieran implementar re'isiones del contenido %ue un adulto pudiera haber dejado disponible en la computadora. Un menor podra accidentalmente encontrarse con el mismo. 27uede Internet $$evar a $os ni8os a encontrarse con su sexua$idad en forma tem#rana3 No necesariamente. &un%ue el contenido sexual es muy amplio en la red! e incluso in"luyente en determinados casos! los padres no deben perder de 'ista %ue la educaci(n sexual es responsabilidad exclusi'a de ellos. 5or lo tanto! si los niJos tienen una buena "ormaci(n en lo %ue concierne a este t(pico! di"cilmente *nternet pueda tener al)3n tipo de in"luencia ne)ati'a. Si por el contrario dicha educaci(n contiene carencias! los chicos buscaran saldarlas por otros medios. &%u entra en jue)o el contenido de los sitios #eb! pero principalmente las relaciones %ue ellos entablan con otras personas mediante listas de correo! "oros! chat etc. Estas personas son mucho m+s in"luyentes %ue el material %ue deambula en sitios porno)r+"icos! por eso es importante "omentar el dialo)o y la educaci(n sexual! sin prejuicios! para %ue ellos puedan dis"rutar de *nternet sin incon'enientes y los padres podamos dormir tran%uilos. Gracias #or su tiem#o0 Sra. Ne ri. Gracias por dedicarle espacio a este tema. ,ue un placer colaborar con ustedes.

También podría gustarte