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ó. 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 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 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 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.

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ó

Proxy Cache Transparente en Ubuntu Server LTS 10.04 con Squid3 OBSERVATORIO TECNOLOGICO: DansGuardian: filtro de contenidos Filtrando contenido (squid+dansguardian+iptables) XTEC.CAT - D83 - Administració, gestió i manteniment de xarxes en Linkat DansGuardian 2.2.x: Guia de Instalacion Detallada Iptables

Menú Anterior | Implementació de LINUX/UBUNTU