Eines de l'usuari

Eines del lloc


informatica:implementacioubuntu:polaris_dansguardian

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

  1. El FIREWALL redirecciona totes les peticions al port 80 cap al por 8080.
  2. DANSGUARDIAN escolta el port 8080 i filtre les demandes.
  3. 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:

  1. Crear un arxiu nat a /etc/init.d/
  2. Donar permisos 755 i d'execució a /etc/init.d/nat
  3. Posar a l'arxiu /etc/init.d/nat les normes que em indicat a l'apartat anterior
  4. 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

  1. Descarregueu-vos aquest arxiu. Deseu-lo en alguna carpeta del vostre ordinador.
  2. En una finestra de terminal, Inicieu un nautilus amb l'ordre gksudo nautilus.
  3. Fent servir la nova finestra de nautilus, oberta amb privilegis de root, busqueu l'arxiu que heu descarregat.
  4. Accediu al servidor DANSGUARDIAN i creu una carpeta catala dins de la carpeta /etc/dansguardian/languages
  5. Descompacteu la carpeta catala que hi ha dins de l'arxiu a la carpeta que acabeu de crear /etc/dansguardian/languages/catala.
  6. 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
  7. 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).
  8. Editeu amb gedit l'arxiu /etc/dansguardiant/dansguardian.conf.
  9. Canvieu el paràmetre language substituiu el valor que hi ha per catala.
  10. Deseu els canvis
  11. Des de la finestra del terminal reinicieu el servei /etc/init.d/dansguardian restart.
  12. 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ó

informatica/implementacioubuntu/polaris_dansguardian.txt · Darrera modificació: 2019/11/24 23:34 (edició externa)