Configurare proxy NTLM in Linux utilizzando CNTLM

Tue 09 August 2022

Ti è mai capitato di doverti autenticare su un proxy srever per poter accedere ad Internet? Capita molto spesso, soprattutto in realtà aziendali, di dover utilizzare un server proxy per poter accedere all'esterno del perimetro aziendale. Alle volte può capitare di dover effetturare l'autenticazione sul server proxy che usa Microsoft NTLM Proxy Server.

Se questo è il tuo caso, ed il tuo sistema operativo è Linux, non riuscirai ad autenticarti su un server proxy NTLM poiché Linux non consente l'autenticazione su tali server senza opportune configurazioni. Fortunatamente, la configurazione è molto semplice, e seguendo questo articolo capirai come effettuarla.

Per eseguire l'autenticazione sul server proxy NTLM, userai CNTLM sulla tua distro Linux; tale pacchetto si occupa di fare da proxy tra il tuo pc e il server proxy Microsoft NTML.

Prerequisiti

Per seguire l'articolo avrai bisogno:

  • pc con Linux installato
  • utente Linux con privilegi di amministratore
  • account sul server MS NTLM

Con questi tre prerequisiti soddisfatti, puoi proseguire con la lettura dell'articolo al fine di installare e configurare CNTLM.

Installazione CNTLM

Come per qualsiasi pacchetto, anche per l'installazione di cntlm, conviene per prima cosa aggiornare la distribuzione sulla quale stiamo operando.

Per un sistema che utilizza il gestore di pacchetti apt, eseguire i seguenti comandi:

sudo apt-get update
sudo apt-get upgrade -y

Al termine dei comandi, se il tuo sistema ha aggiornato molti pacchetti, potrebbe essere necessario un riavvio del pc.

Una volta che l'aggiornamento è completato, installiamo CNTLM con il comando:

sudo apt-get install cntlm -y

Al termine dell'esecuzione del comando avrai il pacchetto installato.

Configurazione CNTLM

Il proxy CNTLM ha un solo file di configurazione memorizzato al path /etc/cntlm.conf.

Per aprire il file e modificarlo:

sudo vi /etc/cntlm.conf

Aperto il file avremo le seguenti informazioni (obbligatorie) da compilare:

  • Username: username del server proxy NTLM
  • Domain: dominio del server proxy NTLM
  • Proxy: indirizzo ip e porta del server proxy NTLM. La notazione deve essere del tipo: IP_ADDRESS:PORT
  • NoProxy: indirizzi sul quale non utilizzare cntlm
  • Listen: porta interna sulla quale lavora cntlm (default 3128)
  • Auth: tipo di autenticazione utilizzata (default NTLMv2)
  • PassLM: password autenticazione LM
  • PassNT: password autenticazione NT
  • PassNTLMv2: password autenticazione NTLMv2

Dovrai quindi compilare tutti i campi eccetto quelli relativi alle password. I valori delle password li memorizzerai utilizzando un comando che esegue un hash della password in modo da non dover inserire in chiaro la stessa nel file.

Per eseguire l'hash della password, eseguire il comando:

sudo cntlm -H -d DOMAIN -u USERNAME

con DOMAIN e USERNAME che hanno lo stesso valore inserito nel file di configurazione indicato precedentemente. L'output del comando prevede l'output delle password che potrai copiare ed incollare nel tuo /etc/cntlm.conf.

Infine, se si hanno più proxy server, all'interno del file di configurazione puoi inserire più righe Proxy, come segue:

Proxy 192.168.1.12:8000
Proxy 192.168.1.15:8000

Una volta completata la configurazione, dovrai riavviare il server cntlm, come segue:

sudo systemctl restart cntlm

In questo momento il tuo pc sa come connettersi ed autenticarsi al proxy Microsoft NTLM utilizzando il proxy CNTLM.

L'ultima configurazione da fare è quella di impostare i vari software a passare per il proxy CNTLM per navigare su internet. Per fare ciò, scrivere all'interno del file ~/.bashrc:

export http_proxy=http://127.0.0.1:3128
export https_proxy=http://127.0.0.1:3128
export ftp_proxy=http://127.0.0.1:3128

nota bene che l'indirizzo punta a localhost ed alla porta impostata precedentemente all'interno del file /etc/cntlm.conf.

A questo punto prova a invocare comandi che necessitano di internet da riga di comando e vedrai che tutto funzionerà.

Conclusioni

Il pacchetto CNTLM consente di configurare un server proxy che comunica con il server proxy Microsoft NTLM. Su linux tale configurazione è fondamentale per poter navigare su internet quando si è alle spalle di un server proxy NTLM.