Diferència entre revisions de la pàgina «ASIX/M11/UF3/EX3»

De Lordwektabyte Wiki
Salta a la navegació Salta a la cerca
Línia 64: Línia 64:
 
https://stackoverflow.com/questions/3297196/how-to-set-up-a-squid-proxy-with-basic-username-and-password-authentication
 
https://stackoverflow.com/questions/3297196/how-to-set-up-a-squid-proxy-with-basic-username-and-password-authentication
 
*Volem configurar restriccions al servidor Proxy de manera que els usuaris tinguin l’accés controlat a internet:
 
*Volem configurar restriccions al servidor Proxy de manera que els usuaris tinguin l’accés controlat a internet:
 +
  
 
*En una acadèmia petita es vol controlar l’accés a Internet dels usuaris. Tenim dos grups d’usuaris:
 
*En una acadèmia petita es vol controlar l’accés a Internet dels usuaris. Tenim dos grups d’usuaris:
 
:*Professors
 
:*Professors
 
:*Alumnes
 
:*Alumnes
 +
  
 
*Tindrem dos blocs d’adreces IP:
 
*Tindrem dos blocs d’adreces IP:
 
:*Professors: 192.168.1.20-192.168.1.40
 
:*Professors: 192.168.1.20-192.168.1.40
 
:*Alumnes: 192.168.1.50-192.168.1.254
 
:*Alumnes: 192.168.1.50-192.168.1.254
 +
  
 
*Cal autenticar els usuaris, i per tant hi ha d’haver un fitxer d’usuaris. (Opcional: Un usuari no es pot autenticar si no és des d’una IP del seu grup).
 
*Cal autenticar els usuaris, i per tant hi ha d’haver un fitxer d’usuaris. (Opcional: Un usuari no es pot autenticar si no és des d’una IP del seu grup).
 +
  
 
*L’horari de classes s’estipula en: 8h a 14:30h de dilluns a divendres i de 15h a 18:30h els dimarts i dijous.
 
*L’horari de classes s’estipula en: 8h a 14:30h de dilluns a divendres i de 15h a 18:30h els dimarts i dijous.
 +
  
 
*Els professors:
 
*Els professors:
 
:*Podran accedir en horari de classe a totes les pàgines web excepte les prohibides al fitxer <code>webs-prohibides-profes</code>.
 
:*Podran accedir en horari de classe a totes les pàgines web excepte les prohibides al fitxer <code>webs-prohibides-profes</code>.
 
:*Fora d’aquest horari, podran accedir a les pàgines web que necessitin sense restricció.
 
:*Fora d’aquest horari, podran accedir a les pàgines web que necessitin sense restricció.
 +
  
 
*Els alumnes:
 
*Els alumnes:
 
:*Només podran accedir a les pàgines web autoritzades que apareixeran a un fitxer <code>webs-autoritzades-alumnes</code>.
 
:*Només podran accedir a les pàgines web autoritzades que apareixeran a un fitxer <code>webs-autoritzades-alumnes</code>.
 
:*L’horari d’ús per a ells serà de 8h a 14:30h de dilluns a divendres i de 15h a 18:30h els dimarts i dijous.
 
:*L’horari d’ús per a ells serà de 8h a 14:30h de dilluns a divendres i de 15h a 18:30h els dimarts i dijous.
 +
  
 
====Solució====
 
====Solució====
 
  
 
===Exercici 3===
 
===Exercici 3===

Revisió del 17:28, 11 feb 2019

Enunciat

Farem la instal·lació bàsica i prova del servidor Squid. El muntatge és senzill. Només cal crear:

  • Un Ubuntu Server com a servidor Squid amb 2 interfícies: NAT i xarxa interna.
  • Un Ubuntu Desktop com a client Web amb targeta a xarxa interna.
  • La xarxa interna tindrà l’identificador 192.168.1.0/24.

Instal·larem Squid amb la comanda

apt install squid3

i l'engegarem i habilitarem 'on-boot amb

guillem@squid-server:~$ sudo systemctl start squid
guillem@squid-server:~$ sudo systemctl enable squid

Podeu comprovar que funciona i està escoltant pel port Comprovació que funciona i està escoltant al port 3128 (des del client):

telnet ip 3128

Un cop instal·lat:

  • Els fitxers de configuració es troben a /etc/squid o bé a /etc/squid3
  • Els fitxers de log es troben a /var/log/squid: cache.log i access.log

Previ

  • Obrir fitxer de configuració /etc/squid.conf.
  • Buscar el bloc ACCESS CONTROLS. Per a permetre als equips d’una xarxa local determinada fer servir el proxy (normalment la xarxa LAN interna):
  • tag acl: buscar la línia acl localnet src (...) i treure el comentari. Editar la xarxa si cal.
  • tag http_access: buscar la línia http_access allow localnet i treure el comentari.
  • Assegurar-se que el servidor Proxy pot anar a internet i pot resoldre noms DNS (provar amb ping a un servidor d’Internet, per exemple 8.8.8.8 i després usar nslookup per a resoldre un nom DNS com ara www.google.es).
  • Al client Web, a preferències, buscar l’opció per configurar el servidor proxy o intermediari:
  • Posar l’adreça IP del servidor Proxy i el port 3128 (si no s’ha canviat).
  • Marcar l’opció de fer servir el mateix servidor proxy per a tots el protocols.
  • Al quadre de text Sense servidor intermediari per afegirem la IP del PfSense i les que volem que es puguin accedir directament sense passar pel proxy (així si el proxy no va podem continuar configurant o accedint a màquines de la xarxa local).
  • Fer una prova de navegació des del client.
  • Podem veure com ens limita el proxy si afegim una nova ACL i la seva http_access associada; per exemple
acl prohibit url_regex youtube sex
http_access deny prohibit

L’efecte serà que si anem a youtube o una URL que contingui la paraula “sex”, es blocarà l’accés (sempre que sigui una petició http. Si és https ens tornarà un error del navegador).


IMPORTANT: Per saber quina regla es compleix, podeu activar opcions de depuració (al fitxer squid.conf):

debug_options ALL,1 33,2

Es veurà quina regla es compleix al fitxer de logs. Cal desactivar aquestes opcions de registre un cop posem el proxy en producció real, ja que consumeix molts recursos.

Exercicis

Exercici 1

  • Volem aplicar restriccions de Squid en una petita empresa.
  • No hi ha autenticació i tots els controls es fan a partir de la IP d’origen.
  • Definiu l’horari de la pausa i la de treball.
  • Definiu també els fitxers de webs permeses i web prohibides.
  • Es vol que des de l’ordinador del jefe es pugui accedir sense restriccions (cap ni una) a internet.
  • Hi ha uns quants llocs web permesos per a qualsevol persona i a qualsevol hora.
  • No es permet l'accés als empleats a webs prohibides durant l'horari de treball, però si en horari de pausa.

Solució

Exercici 2

https://stackoverflow.com/questions/3297196/how-to-set-up-a-squid-proxy-with-basic-username-and-password-authentication

  • Volem configurar restriccions al servidor Proxy de manera que els usuaris tinguin l’accés controlat a internet:


  • En una acadèmia petita es vol controlar l’accés a Internet dels usuaris. Tenim dos grups d’usuaris:
  • Professors
  • Alumnes


  • Tindrem dos blocs d’adreces IP:
  • Professors: 192.168.1.20-192.168.1.40
  • Alumnes: 192.168.1.50-192.168.1.254


  • Cal autenticar els usuaris, i per tant hi ha d’haver un fitxer d’usuaris. (Opcional: Un usuari no es pot autenticar si no és des d’una IP del seu grup).


  • L’horari de classes s’estipula en: 8h a 14:30h de dilluns a divendres i de 15h a 18:30h els dimarts i dijous.


  • Els professors:
  • Podran accedir en horari de classe a totes les pàgines web excepte les prohibides al fitxer webs-prohibides-profes.
  • Fora d’aquest horari, podran accedir a les pàgines web que necessitin sense restricció.


  • Els alumnes:
  • Només podran accedir a les pàgines web autoritzades que apareixeran a un fitxer webs-autoritzades-alumnes.
  • L’horari d’ús per a ells serà de 8h a 14:30h de dilluns a divendres i de 15h a 18:30h els dimarts i dijous.


Solució

Exercici 3

SquidGuard és un "redirector" dissenyat per a Squid. - Un redirector és un programa extern que rep la URL que es vol accedir en la petició i fa una comprovació amb ella.

En el cas d’SquidGuard, mira si la URL es troba en alguna categoria en concret de la seva base de dades i si s’ha configurat alguna restricció, retorna a Squid una URL que apunti a una pàgina d’error. Si la URL no es limita, no es torna res a Squid. SquidGuard afegeix un filtrat per bases de dades de llocs web a Internet, que es pot afegir al filtrat que fa Squid per URL (amb paraules clau, per exemple).

Existeixen llistes a internet amb milers de llocs web organitzats per categories. Per exemple, categories com "comerç electrònic", "porno", "armes", etc. que es poden permetre o denegar. Per exemple: http://www.shallalist.de/Downloads/shallalist.tar.gz

Tota la informació per a posar en marxa els filtres amb Squid es troba a: http://squidguard.org/

La forma més ràpida de posar-lo en marxa és:

  • apt install squidguard
  • Editar /etc/squidguard/squidGuard.conf
  • Baixeu i descomprimiu la BD d’un lloc web on hi hagi una blacklist per a squidGuard (http://squidguard.org/blacklists.html). Mireu de posar-la on indica el fitxer de configuració. Podeu veure la quantitat de llocs web catalogats.
  • Compileu la BD (-d per a veure els errors). Es crearan fitxers .db amb les dades dels fitxers de text, en un format binari apte per a fer cerques de forma ràpida (amb els fitxers de text funcionaria però moooooooolt lent).
squidGuard -d -C all
chown -R <squiduser> /var/lib/squidguard/*

Un fitxer bàsic d’exemple seria aquest. Cal assegurar-se que dbhome i logdir apunten a directoris correctes:

#
# CONFIG FILE FOR SQUIDGUARD
#

dbhome /var/lib/squidguard/db
logdir /var/log/squidguard/logs

dest porn {
        domainlist porn/domains
        urllist porn/urls
        }

acl {
        default {
                pass !porn all
                redirect http://localhost/block.html
        }
 }
  • Cal assegurar-se que els directoris de la base de dades (categories) es corresponen als que escriviu al fitxer squidGuard.conf.

Podeu provar el funcionament sense Squid (prova a mà del redirector):

echo "http://www.example.com 10.0.0.1/ - - GET" | squidGuard -c /etc/squidguard/squidGuard.conf -d
2007-03-25 16:18:05 [30042] squidGuard ready for requests (1174832285.085)
(aquí hi aniria la URL de redirecció si el lloc es bloca, si no, en blanc)
2007-03-25 16:18:05 [30042] squidGuard stopped (1174832285.089)

Ja només resta afegir el redirector a Squid. Busquem al fitxer de Squid el tag url_rewrite_program i el configurem així (busquem primer on es troba el programa squidGuard per posar la ruta correctament, així com la ruta del fitxer de configuració):

url_rewrite_program /usr/local/bin/squidGuard -c /usr/local/squidGuard/squidGuard.conf

Solució