Squid Proxy behind another Proxy

Dopo aver cercato parecchio ho trovato come poter configurare un Proxy Squid che potrà accedere a internet solo tramite un altro Proxy a cui non avete accesso.

In particolare la mia situazione e’ questa: terrò un corso presso un istituto che non vuole autenticare nel suo server proxy direttamente tutti i partecipanti al corso ma fornirà un unico accesso al docente. Ecco allora che ho pensato di gestire tramite un SME Server Virtuale nel mio MacBook Pro, una sottorete con un altro Server Squid che autentichi i partecipanti in una rete diversa e gestita appunto dal server virtuale.

L’installazione di Sme Server è come al solito banale, unico accorgimento nella macchina virtuale è stato associare una scheda di rete del server alla mia scheda wired ed una nuova scheda di rete virtuale alla mia interfaccia wifi entrambe in modalità bridged, utilizzerò poi questa interfaccia per fornire connettività ai partecipanti in modalià Access Point.

Una volta installato il Server SME (7.5), ho potuto da subito creare gli utenti e installare dansguardian per gestire in modo peculiare i permessi.

Il punto per me particolare e’ stato come istruire il mio virtual server SME, ad accedere ad internet tramite il proxy dell’istituto che ci ospita. Dove metto username e password che mi forniranno dopo avermi severamente interrogato, scannerizzato e identificato tramite carta d’identità passaporto ecc.. ?

Inizialemente pensavo di utilizzare delle variabili di sistema in questo modo come indicato qui:

#proxy.sh
 export http_proxy=http://username:password@ip_host:port/
 export ftp_proxy=http://username:password@ip_host:port/
 export no_proxy=.domain.com
 export HTTP_PROXY=http://username:password@ip_host:port/
 export FTP_PROXY=http://username:password@ip_host:port/

ma questo funziona solo da riga di comendo del mio server ma non per gli utenti dietro il mio proxy

Alla fine ho trovato che SME Server aveva giaà pensato a poter configurare squid per collegarsi ad un proxy padre (parent proxy). Ho dovuto solo aggoungere un parametro per specificare nome utente e password.

Ecco i passi da fare:

mkdir -p /etc/e-smith/templates-custom/etc/squid/squid.conf
cp /etc/e-smith/templates/etc/squid/squid.conf/10ParentCache /etc/e-smith/templates-custom/etc/squid/squid.conf/

modificare /etc/e-smith/templates-custom/etc/squid/squid.conf/10ParentCache in questo modo:

{
 $OUT = "";

 if (defined $SquidParent && $SquidParent)
 {
 $OUT .= "cache_peer $SquidParent parent ";
 $OUT .= $SquidParentPort || "3128";
 $OUT .= " 7 no-query default";
 $OUT .= " login=$SquidUser";
 }
}

da riga di comando digitare:

db configuration set SquidParent ip_proxy
db configuration set SquidParentPort porta_proxy
db configuration set SquidUser username:password

(SquidUser è una variabile non definita di default in SME, in alternativa si possono inserire questi valori direttamente nel file di configurazione)

Dove:

ip_proxy = ip o nome del server proxy dell’istituto ospitante

porta_proxy = porta del proxy dell’istituto ospitante

username:password = credenziali ottenute (con molta fatica 🙂 ) dall’Istituto

In seguito dare i comandi:

expand-template /etc/squid/squid.conf
signal-event proxy-update
signal-event post-upgrade; signal-event reboot

Leave a Reply

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.