====== 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 ]] | [[iniciservidorsdades_web_i_comunicacions| Implementació de LINUX/UBUNTU]]