Salta al contenuto principale

Impostare il proxy in Ubuntu da riga di comando

squid

Mi capita spesso di dover accedere ad internet nel Server Ubuntu che ho create in ufficio per fare delle prove. Purtroppo in ufficio utilizziamo un proxy per ottimizzare l'accesso alla rete e questo rende le cose non proprio immediate.

Naturalmente il tutto va impostato tramite terminale impostando le giuste variabili d'ambiente o modificando i files di configurazione di alcune applicazioni.

APT (Advanced Package Tool)

E' il tool necessario per mantenere aggiornato il sistema operativo e per aggiungere programmi, pertanto è la prima cosa che occorre configurare. Per l'accesso al proxy va modificato il file apt.conf che si trova nella cartella /etc/apt:

roberto@ubuntu:~$ sudo nano /etc/apt/apt.conf

e inseriamo le righe seguenti:

Acquire::http::proxy "http://proxy.company.com:80/";

Acquire::https::proxy "https://proxy.company.com:80/";

Acquire::ftp::proxy "ftp://proxy.company.com:80/";

Variabili d'ambiente

Altri programmi invece utilizzano le variabili d'ambiente. Anche in questo caso da terminale possiamo configurare le variabili necessarie:

http_proxy="http://proxy.company.com:80/"

Purtroppo però in questo modo al riavvio del computer la variabile deve essere di nuovo impostata. Per rendere il tutto permanente occorre intervenire sul file environment. E già che ci siamo inseriamole in maniera completa:

roberto@ubuntu:~$ sudo nano /etc/environment

e aggiungiamo:

http_proxy="http://proxy.company.com:80/" https_proxy="http://proxy.company.com:80/" ftp_proxy="http://proxy.company.com:80/" no_proxy="localhost,127.0.0.1,localaddress,.company.com" HTTP_PROXY="http://proxy.company.com:80/" HTTPS_PROXY="http://proxy.company.com:80/" FTP_PROXY="http://proxy.company.com:80/" NO_PROXY="localhost,127.0.0.1,localaddress,.company.com

Purtroppo occorre duplicare tutte le dichiarazioni perché alcuni programmi usano le variabile in minuscolo e altri quelle in maiuscolo ed essendo linux case sensitive per risolvere il problema occorre avere questa accortezza.

Proxy authentication

A complicare le cose nel nostro ambienti di lavoro l'accesso ad internet richiede l'autenticazione tramite utente e password. Pertanto in tutti i casi sopra riportati l'indirizzo del proxy cambia da:

http://proxy.miodominio.it:80/

a:

http://username:password@proxy.miodominio.it:80/

Ma non basta, per rendere il tutto ancora più complicato accediamo con l'utente di dominio nella forma di nome.cognome@miodominio.it. E questo comporta una piccola modifica da fare nella stringa che imposta il proxy per evitare che la chiocciola (@) che precede il dominio faccia confusione con quella che separa le credenziali dall'indirizzo del proxy.
Per risolvere il problema basta fare l'encoding della chiocciola che diventa %40. Da:

"http://nome.cognome@miodominio.it:password@proxy.miodominio.it:proxy.port/"

a:

"http://nome.cognome%40miodominio.it:password@proxy.miodominio.it:proxy.port/"

Questo vale, eventualmente per eventuali caratteri speciali presenti nella password che va indicata in chiaro. Ad es.:

P@ssw0rd

diventa

P%40ssword

In conclusione

Per riepilogare, nel caso della rete del mio ufficio, occorre apportare queste modifiche:

roberto@ubuntu:~$ sudo nano /etc/apt/apt.conf Acquire::http::proxy "http://nome.cognome%40miodominio.it:password@proxy.miodominio.it:80/"; Acquire::https::proxy "https://nome.cognome%40miodominio.it:password@proxy.miodominio.it:80/"; Acquire::ftp::proxy "ftp://nome.cognome%40miodominio.it:password@proxy.miodominio.it:80/";roberto@ubuntu:~$ sudo nano /etc/environment http_proxy="http://nome.cognome%40miodominio.it:password@proxy.miodominio.it:proxy.port/" https_proxy="http://nome.cognome%40miodominio.it:password@proxy.miodominio.it:proxy.port/" ftp_proxy="http://nome.cognome%40miodominio.it:password@proxy.miodominio.it:proxy.port/" no_proxy="localhost,127.0.0.1,localaddress,.miodominio.it" HTTP_PROXY="http://nome.cognome%40miodominio.it:password@proxy.miodominio.it:proxy.port/" HTTPS_PROXY="http://nome.cognome%40miodominio.it:password@proxy.miodominio.it:proxy.port/" FTP_PROXY="http://nome.cognome%40miodominio.it:password@proxy.miodominio.it:proxy.port/" NO_PROXY="localhost,127.0.0.1,localaddress,.miodominio.it"

Etichette