Configurar un proxy per la navegació web dels clients
El primer que farem serà instal·lar el servei Squid i realitzar una còpia de seguretat del fitxer de configuració original per poder revertir canvis si fos necessari.
sudo apt update && sudo apt install squid -y
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak Abans de configurar el fitxer principal, crearem un fitxer de text on posarem els dominis que volem bloquejar. Això ens permet tindre llistes negres externes, que és molt més útil així no hem de tocar com tal el arxiu de configuració principal.
Dins del fitxer afegim els dominis (el punt inicial serveix per bloquejar també els subdominis):
# Creem el fitxer de bloqueig
sudo vim /etc/squid/blacklist.txt .facebook.com
.instagram.com
.tiktok.com Abans de procedir amb la configuració, detallarem les decisions preses per complir amb els objectius de seguretat i optimització:
Segmentació de Xarxa: S’ha definit l’ACL
xarxa_smxutilitzant la subxarxa192.168.100.0/28. Això limita l’ús del proxy exclusivament als 14 hosts de la meva VLAN, evitant accessos no autoritzats des d’altres segments, aquesta subxarxa es cambiara a cada membre del grup per que funcioni en tots els routers.Control de Continguts (Filtratge): Per dotar el sistema de flexibilitat, s’ha implementat una Llista Negra externa (
blacklist.txt). Aquesta configuració permet actualitzar els dominis prohibits sense necessitat de modificar el codi principal del servei.Seguretat de Ports: S’aplica una política de “Deny by Default”. Només es permet el trànsit a través dels ports segurs (80 HTTP i 443 HTTPS), bloquejant qualsevol altre protocol que pugui suposar un risc.
Optimització de l’Amplada de Banda: S’ha configurat una memòria caché combinada:
RAM (cache_mem): Per a una resposta immediata dels objectes més consultats.
Disc (cache_dir): Per emmagatzemar fins a 100MB de contingut web, reduint el consum de dades de la nostra sortida a Internet.
sudo vim /etc/squid/squid.conf # CONFIGURACIÓ PROXY
# --- Definició de Xarxes i Fitxers ---
acl xarxa_smx src 192.168.100.0/28
acl webs_bloquejades dstdomain "/etc/squid/blacklist.txt"
# --- Secció de Seguretat (Ports) ---
acl Safe_ports port 80
acl Safe_ports port 443
acl CONNECT method CONNECT
# --- Regles Accés ---
http_access deny !Safe_ports
http_access deny webs_bloquejades
http_access allow xarxa_smx
http_access allow localhost
http_access deny all
# --- Paràmetres del Servei ---
http_port 3128
# --- Secció d'Optimització (Caché) ---
cache_mem 128 MB
cache_dir ufs /var/spool/squid 100 16 256 Ara reiniciarem el servei per activar la teva nova configuració i comprovarem que estigui “Running”
vagrant@debian:~$ sudo systemctl restart squid
vagrant@debian:~$ sudo systemctl status squid
● squid.service - Squid Web Proxy Server
Loaded: loaded (/lib/systemd/system/squid.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-03-16 09:38:19 CET; 1s ago
Docs: man:squid(8)
Process: 2182 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS)
Main PID: 2186 (squid)
Tasks: 5 (limit: 487)
Memory: 40.5M
CPU: 162ms
CGroup: /system.slice/squid.service
├─2186 /usr/sbin/squid --foreground -sYC
├─2188 "(squid-1)" --kid squid-1 --foreground -sYC
├─2189 "(logfile-daemon)" /var/log/squid/access.log
├─2190 "(unlinkd)"
└─2191 "(pinger)"
Mar 16 09:38:19 debian squid[2188]: 0 Objects expired.
Mar 16 09:38:19 debian squid[2188]: 0 Objects cancelled.
Mar 16 09:38:19 debian squid[2188]: 0 Duplicate URLs purged.
Mar 16 09:38:19 debian squid[2188]: 0 Swapfile clashes avoided.
Mar 16 09:38:19 debian squid[2188]: Took 0.04 seconds ( 0.00 objects/sec).
Mar 16 09:38:19 debian squid[2188]: Beginning Validation Procedure
Mar 16 09:38:19 debian squid[2188]: Completed Validation Procedure
Mar 16 09:38:19 debian squid[2188]: Validated 0 Entries
Mar 16 09:38:19 debian squid[2188]: store_swap_size = 0.00 KB
Mar 16 09:38:20 debian squid[2188]: storeLateRelease: released 0 objects
Ara que farem serà una prova bàsica, per fer-ho utilitzarem tant la màquina de router amb el proxy amb una comanda, que farà que vagi sortint tot el contingut de l’arxiu de log, on es veu el trànsit de la xarxa, també utilitzarem una altra màquina Ubuntu per busca alguna pàgina bloquejada per veure es bloqueja, i per últim buscarem google.com per veure com podem accedir.
Tambe s’ha configurat el navegador Firefox de manera específica per garantir que tot el trànsit web passi pel nostre servidor Debian. Dins de Settings > Network Settings, s’han aplicat els següents paràmetres:
Manual proxy configuration: S’ha seleccionat aquesta opció per introduir manualment les dades del nostre servidor.
HTTP Proxy: S’ha introduït l’adreça IP del router, 192.168.100.1.
Port: S’ha definit el port 3128, que és el port d’escolta per defecte del servei Squid configurat al router.
Petició a un domini prohibit. Es veu el codi 403 Forbidden, confirmant que el Proxy denega.
vagrant@ubuntu:~$ curl -I http://www.facebook.com
HTTP/1.1 403 Forbidden
Server: squid/5.7
Mime-Version: 1.0
Date: Mon, 16 Mar 2026 10:46:14 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 3070
X-Squid-Error: ERR_ACCESS_DENIED 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from debian
X-Cache-Lookup: NONE from debian:3128
Via: 1.1 debian (squid/5.7)
Connection: keep-alive
Petició a un domini permès. El codi 200 OK indica que el trànsit flueix correctament a través del servidor.
vagrant@super-VirtualBox:~$ curl -I http://www.google.com
HTTP/1.1 200 OK
Content-Type: text/html; charset=ISO-8859-1
Content-Security-Policy-Report-Only: object-src 'none';base-uri 'self';script-src 'nonce-0YqOu5E-MU2rgqxpZM9Fog' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp
Reporting-Endpoints: default="//www.google.com/httpservice/retry/jserror?ei=GeC3afX2Bczy7M8Piq-L8Ag&cad=crash&error=Page%20Crash&jsel=1&bver=2397&dpf=Ng6uYl74jlEq2r7cbHIWJj-t0bOpZPEednZknlLPizE"
Date: Mon, 16 Mar 2026 10:48:57 GMT
Server: gws
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Expires: Mon, 16 Mar 2026 10:48:57 GMT
Cache-Control: private
Set-Cookie: AEC=AaJma5vGUrkejT4msm-p_t8aPrnjb1ZhZdv1S6qkW1x_5WpLLlZD6TC7GfM; expires=Sat, 12-Sep-2026 10:48:57 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=lax
X-Cache: MISS from debian
X-Cache-Lookup: MISS from debian:3128
Via: 1.1 debian (squid/5.7)
Connection: keep-alive
I el registre d’activitat al servidor Squid. Es pot veure la traça de les dues peticions anteriors amb els estats TCP_DENIED/403 i TCP_MISS/200
vagrant@router:~$ sudo tail -f /var/log/squid/access.log
1773656493.172 3035 192.168.100.9 TCP_MISS_ABORTED/000 0 GET http://detectportal.firefox.com/canonical.html - HIER_NONE/- -
1773656529.827 39624 192.168.100.9 NONE_NONE/500 0 CONNECT ads.mozilla.org:443 - HIER_NONE/- -
1773656529.827 39620 192.168.100.9 NONE_NONE/500 0 CONNECT ads.mozilla.org:443 - HIER_NONE/- -
1773656529.827 39480 192.168.100.9 NONE_NONE/500 0 CONNECT www.google.com:443 - HIER_NONE/- -
1773656529.827 36857 192.168.100.9 NONE_NONE/500 0 CONNECT www.google.com:443 - HIER_NONE/- -
1773656529.827 39423 192.168.100.9 NONE_NONE/500 0 CONNECT firefox.settings.services.mozilla.com:443 - HIER_NONE/- -
1773656529.827 39359 192.168.100.9 NONE_NONE/500 0 CONNECT safebrowsing.googleapis.com:443 - HIER_NONE/- -
1773656529.827 39014 192.168.100.9 NONE_NONE/500 0 CONNECT push.services.mozilla.com:443 - HIER_NONE/- -
1773656529.827 38874 192.168.100.9 NONE_NONE/500 0 CONNECT incoming.telemetry.mozilla.org:443 - HIER_NONE/- -
1773656529.827 37251 192.168.100.9 NONE_NONE/500 0 CONNECT www.reddit.com:443 - HIER_NONE/- -
1773657974.044 0 192.168.100.10 TCP_DENIED/403 362 HEAD http://www.facebook.com/ - HIER_NONE/- text/html
1773658137.397 353 192.168.100.10 TCP_MISS/200 964 HEAD http://www.google.com/ - HIER_DIRECT/142.251.29.106 text/html