====== Instal·lació de DANSGUARDIAN ====== ===== 0 - Introducció ===== DansGuardian (http://dansguardian.org/) és una utilitat que té com a finalitat fer de filtre de continguts, treballa conjuntament amb SQUID (//servidor proxy//) APACHE2 (//servidor WEB//) i IPTABLES (//talla focs de linux//).\\ DansGuardian es situa entre el navegador WEB i el proxy. interceptant i modificant la comunicació entre tots dos. Es filtren les pàgines visitades, això té especial interès a la xarxa escolar.\\ DANSGUARDIAN disposa de un gran nombre d'arxiu que faciliten adaptar les característiques del filtre a les necessitats de la nostra xarxa escolar, personalitzant el servei.\\ ==== Funcionament de DANSGUARDIAN ==== Els navegadors de les estacions de la xarxa demanen pàgines WEB.\\ DANSGUARDIAN reb aquestes peticions, redireccionades des del proxy de la xarxa.\\ Un cop filtrades es presenten, o bé es denega la visutalització. {{ :informatica:migraciowinlnk3:dansguardian_html_m24c501ce.png?nolink&200 |cliente web -> DansGuardian -> Squid -> servidor}} - El FIREWALL redirecciona totes les peticions al port 80 cap al por 8080. - DANSGUARDIAN escolta el port 8080 i filtre les demandes. - Es passen les peticions al por 3128 on es troba el PROXY. * Si el resultat és una denegació del servei, es presenta una pàgina informant, per això cal disposar d'un servidor WEB. * Es pot configurar el tallafocs i el proxy per que funcionin de manera **transparent***, d'aquesta manera als clients de la xarxa s'indica la passarel·la i totes les comunicacions es filtraran. ==== CARACTERÍSTIQUES DE LA XARXA ESCOLAR ==== En el cas del nostre centre disposem d'una xarxa del projecte HEURA, del departament d'Ensenyament. En aquesta xarxa es disposa d'una VLAN DOCENT, per tal d'evitar haver de modificar la configuració dels switchs de la xarxa, disposarem d'una única xarxa 192.168.0.0/24, on es troben totes les estacions.\\ En altres xarxes es podria definir una subxarxa, que connectarà amb internet a través del servidor on es troba DANSGUARDIAN, que tindrà funcions de router. No és el nostre cas.\\ Internament el servidor passarà la comunicació de la placa **eth1** a **eth0** El nostre servidor de comunicacions disposa de dues plaques de xarxa d'un 1Gb\\ * **eth0** el farem servir com a placa de destí de les comunicacions i serà la que connecti amb internet. * **eth1** serà la placa que rebi les demandes de la xarxa local i estarà redireccionada cap a DANSGUARDIAN. ===== 1 - Instal·lació del programari necessari ===== Per un correcte funcionament del sistema es necessita tenir instal·lats: **SQUID**, **APACHE2**, **DANSGUARDIAN**, **IPTABLES**.\\ Si heu seguit tot el protocol de la instal·lació del servidor de comunicacions POLARIS, ja està instal·lat el proxy **SQUID**, en cas contrari caldrà instal·lar-ho: apt-get install squid3 apt-get install apache2 dansguardian iptables ===== 2 - CONFIGURACIÓ DE LA XARXA DEL SERVIDOR ===== Es configura les interfícies del servidor **/etc/network/interfaces** * Assegurar la correcta configuració de la xarxa. Editar l'arxiu **/etc/netowrk/interfaces**. * Es definirà la IP de la placa de xarxa que connectarà amb la xarxa local del centre, * també es definirà una IP virtual per aquesta placa, per fer-la compatible amb configuracions anteriors del maquinari. * Es definirà la IP de la placa que connectarà amb el router. # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 172.16.10.3 netmask 255.255.255.0 network 172.16.10.0 broadcast 172.16.10.255 gateway 172.16.10.1 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 192.168.0.6 213.176.161.16 213.176.161.18 dns-search intracentre auto eth1 iface eth1 inet static address 192.168.0.6 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 dns-nameservers 192.168.0.6 213.176.161.16 213.176.161.18 dns-search intracentre auto eth1:1 iface eth1:1 inet static address 192.168.0.4 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 dns-nameservers 192.168.0.6 213.176.161.16 213.176.161.18 dns-search intracentre ===== 3 - CONFIGURACIÓ DE SQUID3 ===== Cal assegurar la següent configuració del servidor PROXY, per això cal modificar l'arxiu **/etc/squid3/squid.conf**: acl localnet src 192.168.0.0/24 http_access allow localnet http_access allow localhost http_access deny all http_port 3128 cache_dir ufs /var/spool/squid 7168 16 256 La configuració actual de SQUID3 està recollida en [[http://ceipturodeguiera.xtec.cat/dokuwiki/lib/exe/fetch.php?w=200&media=informatica:migraciowinlnk3:squid.conf.zip|aquest arxiu]]. ===== 4 - REDIRECCIONAMENT DE PAQUETS ===== Cal habilitar el redireccionament de paquets, per això cal editar l'arxiu **/etc/sysctl.conf**, i descomentar les línies que habiliten el redireccionament de paquest per IPv4 i Ipv6: net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding = 1 ===== 5 - CONFIGURACIÓ BÀSICA DE DANSGUARDIAN ===== Es farà una primera configuració de DANSGUARDIAN, posteriorment ja afinarem una mica més la seva configuració.\\ Cal editar l'arxiu **/etc/dansguardian/dansguardian.conf**. ==== Fases de la configuració elemental ==== * Comentar la directiva UNCONFIGURED. Aegir el caràcter '#'. * Fixar els valors de * filterip * filterport * proxyip * proxyport * languagedir * language * accessdeniedaddress * loglocation # UNCONFIGURED - Please remove this line after configuration # Comentar aquesta línia loglocation = '/var/log/dansguardian/access.log' # lloc del log d'accessos a DANSGUARDIAN filterip = # màquina on es troba DANGUARDIAN filterport = 8080 # port del filtre del DANSGUARDIAN proxyip = 127.0.0.1 # adreça del PROXY proxyport = 3128 # port del PROXY languagedir = '/etc/dansguardian/languages' # carpeta dels idiomes language = 'spanish' # idioma de la seva interfície accessdeniedaddress = 'http://192.168.0.6/cgi-bin/dansguardian.pl' # servidor web La configuració actual de DansGuardian està recollida en [[http://ceipturodeguiera.xtec.cat/dokuwiki/lib/exe/fetch.php?w=200&media=informatica:migraciowinlnk3:dansguardian.conf.zip|aquest arxiu]]. ===== 6 - Verificació de funcionament del servei ===== En aquest punt de la instal·lació es pot verificar si DANSGUARDIAN està operatiu: * Accedint a la configuració d'un navegador WEB (//FIREFOX//), es modifica la configuració per que faci servir el proxy en el port 8080, per connectar-se a internet. * **Aplicacions -> Internet -> Navegador web Firefox** desplegar el menú **Edita -> Preferències** i selecciona **Avnaçats / Xarxa** i clicar el botó de configuració de la connexió, seleccionar l'opció **Configuració manual del servidor intermediari** indicant l'adreça de la màquina que té DANSGUARDIAN i el port 8080, també es pot seleccionar l'opció **Utilitza aquest servidor intermediari per a tots els protocols**. * Valideu els canvis. * A la barra d'adreces d'internet del navegador indiqueu alguna WEB inadequada o cerqueu alguna paraula com //chicas//. * Si tot funciona correctament hem de rebre un missatge denegant el servei. * Un cop feta aquesta comprovació, torneu a posar la configuració del navegador com estava al principi. Normalment **Connexió directa a Internet** ===== 7 - Establiment de les regles IPTABLES ===== IPTABLES és el tallafocs que fa servir LINUX. Caldrà especificar algunes normes, i verificar el seu funcionament. | iptables -L -t nat | Mostra les regles que se apliquen, a la taula de la xarxa | | iptables -L | Mostra les regles que s'apliquen a altres taules del firewall. | ==== CONFIGURACIÓ DE L'ENTORN DE PROVES ==== Per a la configuració de l'entorn de proves de vBox, les normes que ha aplicat han estat: iptables -t nat -A POSTROUTING -s 10.23.67.0/24 -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -s 10.23.67.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -A POSTROUTING -s 169.254.0.0/255.255.0.0 -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -s 169.254.0.0/255.255.0.0 -p tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 8080 La sentència **route -n** executada als clients, en permetran descobrir les diferent xarxes per les que passen les nostes comunicacions fins arribar a la sortida a internet.\\ En cas de treballar en una màquina de probes, es pot detectar que hi apareixen unes xarxes intermediàries (**10.23.67.0/24** i **169.254.0.0/255.255.0.0**) Tabla de rutas IP del núcleo Destino Pasarela Genmask Indic Métric Ref Uso Interfaz 192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 2 0 0 eth1 10.23.67.0 0.0.0.0 255.255.255.0 U 0 0 0 pan1 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0 0.0.0.0 192.168.0.244 0.0.0.0 UG 0 0 0 eth0 Un cop aplicades aquestes regles, **iptables -L -t nat** ha donat aquesta resposta en el servidor vBox Chain PREROUTING (policy ACCEPT) target prot opt source destination REDIRECT tcp -- 10.23.67.0/24 anywhere tcp dpt:www redir ports 8080 REDIRECT tcp -- link-local/16 anywhere tcp dpt:www redir ports 8080 REDIRECT tcp -- 192.168.0.0/24 anywhere tcp dpt:www redir ports 8080 REDIRECT tcp -- anywhere anywhere tcp dpt:www redir ports 8080 Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 10.23.67.0/24 anywhere MASQUERADE all -- link-local/16 anywhere MASQUERADE all -- 192.168.0.0/24 anywhere ==== CONFIGURACIÓ ACTUAL DE POLARIS ==== Es fa un redireccionament dels ports 80 i 3128, cap a DANSGUARDIAN, de manera que tant les crides al proxy, com les sortides directes a internet es filtran perl gestor de continguts iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp --dport 3128 -j REDIRECT --to-ports 8080 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE ===== 8 - Arrencada inicial de les regles d'IPTABLES ===== Per tal de que en l'arrencada del servidor s'estableixin les regles que acabem de fixar a IPTABLES, cal fer els següents passos:\\ - Crear un arxiu **nat** a **/etc/init.d/** - Donar permisos 755 i d'execució a **/etc/init.d/nat** - Posar a l'arxiu **/etc/init.d/nat** les normes que em indicat a l'apartat anterior - Crear un enllaç simbòlic ln -s /etc/init.d/nat /etc/rc2.d/S60nat El número que acompanya la S és aleatori, però ha de ser superior al número assignat a SQUID i DANSGUARDIAN.\\ \\ En cas de modificar alguna de les regles que es contenen a l'arxiu **/etc/init.d/nat** cal refer l'enllaç simbòlic (esborrar-ho, primer i tornar a executar la sentència **ln -s /etc/init.d/nat /etc/rc2.d/S60nat**. ===== 9 - CONFIGURACIÓ DEL CATALÀ COM A LLENGUA DE DANSGUARDIAN ===== ==== Pantalla de denegació de servei ==== - Descarregueu-vos [[http://ceipturodeguiera.xtec.cat/dokuwiki/lib/exe/fetch.php?w=200&media=informatica:migraciowinlnk3:dansguardian.catala.2012.tar.gz|aquest arxiu]]. Deseu-lo en alguna carpeta del vostre ordinador. - En una finestra de terminal, Inicieu un nautilus amb l'ordre **gksudo nautilus**. - Fent servir la nova finestra de nautilus, oberta amb privilegis de **root**, busqueu l'arxiu que heu descarregat. - Accediu al servidor DANSGUARDIAN i creu una carpeta **catala** dins de la carpeta **/etc/dansguardian/languages** - Descompacteu la carpeta //**catala**// que hi ha dins de l'arxiu a la carpeta que acabeu de crear **/etc/dansguardian/languages/catala**. - Aquest arxiu presenta una pantalla per a l'escola Turó de Guiera, si necessiteu adaptar-lo al vostre centre, caldrà que editeu l'arxiu **templates.html**. Deseu l'arxiu en format **utf-8** - Si observeu que hi ha algun missatge imprecís o millorable, el trobareu a l'arxiu **messages**, el podeu editar amb gedit (i els permisos de root). - Editeu amb gedit l'arxiu **/etc/dansguardiant/dansguardian.conf**. - Canvieu el paràmetre **language** substituiu el valor que hi ha per **catala**. - Deseu els canvis - Des de la finestra del terminal reinicieu el servei **/etc/init.d/dansguardian restart**. - Des d'un client accediu al navegador, provoqueu el missatge de denegació d'accés intentant accedir a un espai web inadequat i hauríeu de rebre el missatge amb la denegació d'accés en català. ===== 10 - CONFIGURACIÓ DELS CLIENTS DE LA XARXA ===== Per tal de fer operatiu l'ús del filtre DANSGUARDIAN, a les màquines del centre, caldrà indicar a totes les màquines que facin servir l'adreça de la màquina que té el filtre, com a passarel·la d'internet. La millor opció serà modificar l'arxiu **/etc/network/interfaces**. # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.115 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.6 Aquesta configuració d'ha d'efectuar a totes les màquines clients del centre, indicant l'adreça IP pròpia de cada màquina al camp **address 192.168.0.xxx**. Per evitar una sobrecàrrega de la placa eth1, el servei de dns que proporciona aquest servidor, el desviarem a la placa de xarxa eth0, que te l'adreça 192.168.0.4, per aquest motiu a l'arxiu **/etc/resolv.conf** tindrà únicament la línia **nameserver 192.168.0.4**. nameserver 192.168.0.4 ===== 11 - CONFIGURACIÓ DEL FILTRAT ===== L'últim pas d'aquest procés serà la configuració dels filtres que es faran servir, llocs web que estaran denegats o permesos, adreces IP que podran evitar el filtre, paraules que es filtraran i nivell de filtrat... També es po determinar un nivell de filtrat en funció d'un horari, creant uns duplicats dels llocs web no permesos i permesos i emprar cron, per activar un arxiu o un altre i reiniciar el servei. [[http://recursostic.educacion.es/observatorio/web/ca/software/software-general/524-dansguardian-filtro-de-contenidos|Aquesta pàgina]] té una informació molt clara sobre els diferents mètodes de filtrat que fa servir DANSGUARDIAN i com implementar-los.\\ Consulteu els apartats 4, 5 i 6 del document ==== Arxius de filtres /etc/dansguardian/ ==== | **//Arxiu//** | **//Descripció//** | | **bannedphraselist** | conté una llista de frases prohibides. Les frases poden estar entre <>. Per defecte inclou una llista exemple en anglès. Les frases poden contenir espais. Es poden fer servir combinacions de frases, que si es roben en una pàgina seran bloquejades. | | **bannedmimetypelist** | conté una llista dels tipus **MIME** prohibits. Su una URL retorna un tipus MIME inclós a la llista, es bloquejarà. Per defecte es presenten alguns tipus MIME que seran bloquejats. | | **bannedextensionlist** | conté una llista d'extensió d'arxius no permeses. Si una URL termina amb alguna extensió de la llista, es bloquejarà. S'inclou un arxiu exemple on es mostra com denegar les extensions. | | **bannedregexpurllist** | conté una llista d'expressions regulars, que si es contenen a la URL seran bloquejades. | | **bannedsitelist** | conté la llista dels llocs prohibits. El noms de domini indicats es bloquegen en la sera totalitat. Si només es vol bloquejar marts d'un lloc web, cal fer servir l'arxiu **bannedurllist**. Per a bloquejar un lloc, però exceptuar algunes part, caldrà fer les indicacions oportunes a l'arxiu **exceptionsitelist**. Hi ha la possibilitat de descarregar-se llistes negres de llocs web i de URL i posar-les als arxius corresponents. Aquestes llistes es troben a http://dansguardian.org/?page=extras. | | **bannedurllist** | permet bloquejar parts específiques d'un lloc web. | | **banneduserlist** | Llista de noms d'usuaris que seran bloquejats. |ç ==== Arxius d'excepcions /etc/dansguardian/ ==== | **//Arxiu//** | **//Descripció//** | | **exceptionsitelist** | conté una llista amb els noms de domini que no seran filtrats. És important tenir en compta que en el nom de domini no s'ha d'incloure http:// o www. | | **exceptioniplist** | conté una llista de les adreces IP de les màquines que no seran filtrades i per tant tindran accés lliure a tots els continguts. | | **exceptionuserlist** | llista dels noms d'usuaris que no seran filtrats, cas de fer servir el control d'accés per usuari. | | **exceptionphraselist** | llista de les frases que, si apareixen en una pàgina web, passaran el filtre. | =====12 - Filtrat de pàgines WEB amb horari ===== Donades les limitacions d'ample de banda de l'ADSL del centre, caldrà filtrar determinats WEB's que consumeixen un ample de banda gran, o determinades WEB que els alumnes no han de poder accedir en horari escolar.\\ Aquest filtre s'activarà en unes hores determinades i es desactivarà en finalitzar les classes.\\ L'estratègia que seguirem serà fer dos arxiu bannedsitelist, un amb els llocs limitats en horari escolar i un altre sense la limitació horària.\\ Mitjançant el cron del servidor es copiarà un o l'altre activant-se. ==== a) Creació dels dos arxius de filtre ==== Amb **gedit** afegirem les línies corresponents a l'arxiu de llocs denegats. Enregistrarem els arxius amb els noms: **bannedsitelist_HorariClasse** i **bannedsitelist_HorariNoClasse**. ==== b) Procediment d'activació d'un filtre o l'altre==== Crearem aquest codi en un arxiu que nomenarem DansGuardianLimitHorari.sh, donant-li permisos d'execució en una carpeta que crearem a root /root/procedimentsSH. Aquest procediment sobre escriu l'arxiu bannedsitelist, amb l'arxiu de filtre que es vol fer servir i es reinicia el servidor DANSGUARDIAN #### # DansGuardianLimitHorari # # Aques procediment sobre escriu l'arxiu amb els llocs web denegats en horari de classe # # Cal passar dos paràmetres # $1 - Indicant el nom de l'arxiu que s'activarà: # aquests arxius poden ser: # bannedsitelist_HorariClasse # bannedsitelist_HorariNoClasse # # if [ $# -lt 1 ]; then echo "Necessites passar el nom de l'arxiu bannedsitelist que vols activar" echo " bannedsitelist_HorariClasse / bannedsitelist_HorariNoClasse" exit 1 fi # rm /etc/dansguardian/lists/bannedsitelist cp /etc/dansguardian/lists/$1 /etc/dansguardian/lists/bannedsitelist /etc/init.d/dansguardian restart echo "final del procediment" ==== c) Programació de cron ==== Cal programar aquesta tasca a l'arxiu **/etc/crontab** Per aquesta finalitat inserirem aquestes línies a l'arxiu /etc/crontab ### # Control horari de dansguardian # 0 9 * * * 1,2,3,4,5 root /root/procedimentsSH/DansGuardianLimitHorari.sh bannedsitelist_HorariClasse 0 11 * * * 1,2,3,4,5 root /root/procedimentsSH/DansGuardianLimitHorari.sh bannedsitelist_HorariNoClasse 30 11 * * * 1,2,3,4,5 root /root/procedimentsSH/DansGuardianLimitHorari.sh bannedsitelist_HorariClasse 30 12 * * * 1,2,3,4,5 root /root/procedimentsSH/DansGuardianLimitHorari.sh bannedsitelist_HorariNoClasse 0 15 * * * 1,2,3,4,5 root /root/procedimentsSH/DansGuardianLimitHorari.sh bannedsitelist_HorariClasse 30 16 * * * 1,2,3,4,5 root /root/procedimentsSH/DansGuardianLimitHorari.sh bannedsitelist_HorariNoClasse El filtre amb limitacions d'accés a facebook i youtube, s'activa a les 9:00 i es desactiva a l'hora del pati 11:00-11:30, tornant a activar-se fins les 12:30 hora en que acaben les classes. Per la tarda torna a activar-se a les 15:00 fins les 16:30. =====Pàgines WEB consultades i orígen d'aquesta informació ===== [[http://fraterneo.blogspot.com.es/2010/06/how-to-proxy-cache-transparente-en.html|Proxy Cache Transparente en Ubuntu Server LTS 10.04 con Squid3]]\\ [[http://recursostic.educacion.es/observatorio/web/ca/software/software-general/524-dansguardian-filtro-de-contenidos| OBSERVATORIO TECNOLOGICO: DansGuardian: filtro de contenidos]]\\ [[http://blog.debian.org.sv/?p=30|Filtrando contenido (squid+dansguardian+iptables)]]\\ [[http://www.xtec.cat/formaciotic/dvdformacio/materials/td83/practica_3.html|XTEC.CAT - D83 - Administració, gestió i manteniment de xarxes en Linkat]]\\ [[http://dansguardian.org/downloads/detailedinstallation2-spanish.html|DansGuardian 2.2.x: Guia de Instalacion Detallada]]\\ [[http://doc.ubuntu-es.org/Iptables|Iptables]]\\ \\ ---- [[polaris | Menú Anterior ]] | [[inici&#servidorsdades_web_i_comunicacions| Implementació de LINUX/UBUNTU]]