Cosa fa#
Installa Squid su Ubuntu come forward proxy. Kali naviga attraverso Ubuntu: il sito vede l'IP di Ubuntu, non di Kali. Dimostra anche il content filtering bloccando un dominio specifico.
TL;DR#
Senza proxy: Kali ─HTTP─▶ example.com (example.com vede IP Kali)
Con proxy: Kali ─HTTP─▶ Ubuntu(Squid) ─HTTP─▶ example.com (example.com vede IP Ubuntu)| Funzione | Descrizione |
|---|---|
| Anonimato IP | Il sito vede il proxy, non il client |
| Content filtering | Blocca domini o categorie di siti |
| Caching | Risparmio banda (Squid cachea le risposte) |
| Logging | Tutti gli URL visitati loggati su Ubuntu |
Fase 1 — Installa e configura Squid su Ubuntu#
Task 1.1 — Installa Squid
sudo apt update && sudo apt install -y squid sudo systemctl status squid- Come sai che hai finito: status active (running), porta 3128 in ascolto
Task 1.2 — Verifica porta in ascolto
ss -tlnp | grep 3128- Come sai che hai finito: squid in ascolto su 0.0.0.0:3128
Task 1.3 — Configura Squid per accettare connessioni dalla Kali
sudo nano /etc/squid/squid.confTrova la sezione ACL e aggiungi prima di
http_access deny all:acl lab_network src 192.168.64.0/24 http_access allow lab_networksudo systemctl restart squid- Come sai che hai finito:
sudo squid -k parsesenza errori
- Come sai che hai finito:
Fase 2 — Configura Kali per usare il proxy#
Task 2.1 — Imposta proxy per curl (variabile d'ambiente)
# Da Kali export http_proxy="http://192.168.64.3:3128" export https_proxy="http://192.168.64.3:3128"Task 2.2 — Testa la connessione attraverso il proxy
curl -v http://example.com 2>&1 | grep -E "Connected|HTTP|Via"- Come sai che hai finito: vedi "Via: 1.1 ubuntu (squid/...)" nell'header di risposta — conferma che il traffico è passato per Squid
Task 2.3 — Verifica i log su Ubuntu
# Su Ubuntu — vedi le richieste di Kali sudo tail -f /var/log/squid/access.logEsegui una richiesta da Kali mentre guardi i log:
# Da Kali curl http://example.com- Come sai che hai finito: nel log vedi l'IP di Kali (192.168.64.200), l'URL, il codice HTTP
Fase 3 — Content filtering: blocca un dominio#
Task 3.1 — Aggiungi blocco dominio
sudo nano /etc/squid/squid.confAggiungi queste righe prima di
http_access allow lab_network:acl bloccati dstdomain .facebook.com .twitter.com http_access deny bloccatisudo systemctl restart squidTask 3.2 — Verifica il blocco da Kali
curl -v http://facebook.com- Come sai che hai finito: ricevi "403 Forbidden" da Squid — il dominio è bloccato
Task 3.3 — Verifica nei log
sudo tail -5 /var/log/squid/access.log- Come sai che hai finito: vedi
DENIEDaccanto alla richiesta verso facebook.com
- Come sai che hai finito: vedi
Fase 4 — Differenza forward proxy vs reverse proxy#
Task 4.1 — Analisi concettuale
Forward Proxy Reverse Proxy Protegge Il client Il server Dove sta Vicino al client / DMZ lato client DMZ davanti ai server Chi lo configura Il client (o il DHCP/GPO) L'amministratore del server Esempio Squid aziendale nginx, HAProxy Il server vede IP del proxy IP del proxy - Come sai che hai finito: sai rispondere: "un reverse proxy sta nella DMZ e protegge i server interni" (trappola esame cap 3)
Scenario Reale#
Un'azienda installa Squid come forward proxy obbligatorio per tutto il traffico HTTP/HTTPS interno. Risultati:
- Visibilità: ogni URL visitato è loggato → utile per threat hunting
- Content filtering: blocca malware domains noti, social media, siti non aziendali
- SSL inspection (avanzato): Squid può fare MITM su HTTPS per ispezionare il contenuto cifrato
Risorse#
man squid.conf— configurazione completa/var/log/squid/access.log— log delle richieste- Gibson SY0-701 Cap 3 — Proxy Server
Collegato a#
- cap-03-security-architecture — proxy server, forward vs reverse


