CNTLM: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Riga 40: Riga 40:


A questo punto avviare il proxy in modalità test digitando quanto segue:
A questo punto avviare il proxy in modalità test digitando quanto segue:
<pre>cntlm -I -u ''mia_utenza'' -d ''AZIENDA'' -M http://www.google.it ''IP_proxy:porta''</pre>
<pre># cntlm -I -u ''mia_utenza'' -d ''AZIENDA'' -M http://www.google.it ''IP_proxy:porta''</pre>
Dove:
Dove:
* ''mia_utenza'' è l'utenza abilitata ad accedere al server proxy di windows;
* ''mia_utenza'' è l'utenza abilitata ad accedere al server proxy di windows;
Riga 59: Riga 59:
* password
* password
Si noti che server vecchi potrebbero utilizzare protocolli di autenticazione più vecchi (e meno sicuri) di NTLMv2, in tal caso l'output del precedente comando potrebbe essere significativamente diverso da quello indicato.
Si noti che server vecchi potrebbero utilizzare protocolli di autenticazione più vecchi (e meno sicuri) di NTLMv2, in tal caso l'output del precedente comando potrebbe essere significativamente diverso da quello indicato.
È possibile ottenere un elenco di tutti e tre i possibili sistemi di cifratura digitando:
<pre># cntlm -H -u ''mia_utenza'' -d ''AZIENDA''</pre>
Che resituirà qualcosa di simile a:
<pre>
PassLM          FAK3FAK3FAK3FAK3FAK3FAK3FAK3FAK3
PassNT          F@KEF@KEF@KEF@KEF@KEF@KEF@KEF@KE
PassNTLMv2      FAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKE    # Only for user 'mia_utenza', domain 'AZIENDA'
</pre>
{{ Box | Importante | Il precedente comando calcola solo gli hash della password, '''NON''' testa in alcun modo il funzionamento di cntlm. Per testarne il funzionamento è necessario usare l'opzione -M seguita da un indirizzo internet valido}}
Come specificato nel manuale di cntlm esistono diversi protocolli di autenticazione ciascuno dei quali sfrutta da uno a due sistemi di cifratura:
Come specificato nel manuale di cntlm esistono diversi protocolli di autenticazione ciascuno dei quali sfrutta da uno a due sistemi di cifratura:
<pre>
<pre>
Riga 69: Riga 78:
LM          |  PassLM
LM          |  PassLM
</pre>
</pre>
Nella colonna ''Auth'' viene indicata la sigla del protocollo di autenticazione, mentre nella colonna ''requires'' la sigla dei metodi di cifratura usati per cifrare la password utente. Come si vede tutti i protocolli di autenticazione, ad eccezione di ''NTLM'', richiedono un solo sistema di cifratura. I protocolli sono ordinati in funzione del grado di sicurezza offerto (NTLMv2 è il più recente e il più sicuro).
Nella colonna ''Auth'' viene indicata la sigla del protocollo di autenticazione, mentre nella colonna ''requires'' la sigla dei metodi di cifratura usati per cifrare la password utente (i protocolli sono ordinati in funzione del grado di sicurezza offerto, dove NTLMv2 è il più recente e il più sicuro).
Come si vede tutti i protocolli di autenticazione, ad eccezione di ''NTLM'', richiedono un solo sistema di cifratura.
{{ Warningbox | ''PassNT'' e ''PassLM'' cifrano la password senza tenere conto di nome utente e dominio, mentre come già scritto ''PassNTLMv2'' sfrutta anche i suddetti parametri. Ne consegue che gli hash ''PassNT'' e ''PassLM'' di una certa password sono sempre i medesimi a prescindere dal nome utente e dal dominio specificato, mentre nel caso di ''PassNTLMv2'' cambia in funzione del loro valore}}
{{ Warningbox | ''PassNT'' e ''PassLM'' cifrano la password senza tenere conto di nome utente e dominio, mentre come già scritto ''PassNTLMv2'' sfrutta anche i suddetti parametri. Ne consegue che gli hash ''PassNT'' e ''PassLM'' di una certa password sono sempre i medesimi a prescindere dal nome utente e dal dominio specificato, mentre nel caso di ''PassNTLMv2'' cambia in funzione del loro valore}}



Versione delle 14:19, 17 feb 2015

Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Introduzione

CNTLM è un proxy di autenticazione molto utile quando il proprio computer si trova dietro un firewall windows che richiede all'utente di autenticarsi per poter "accedere ad internet". Sebbene alcuni programmi, come i browser più noti, implementino nativamente un sistema per dialogare con proxy di qualsiasi natura, molti altri o non hanno proprio alcun modo per interfacciarsi con un proxy, oppure semplicemente inviano degli hedears che vengono rifiutati dal proxy windows. Un altro motivo per usare cntlm consiste nella possibilità di specificare la password in forma cifrata e non in chiaro, come di solito avviene per esempio in APT, dove l'unico modo di specificare username e password è insieme all'indirizzo del proxy nella forma http://username:password@indirizzo_proxy:porta/.

Installazione

CNTLM è disponibile direttamente da repository ufficiali, quindi è per esempio sufficiente digitare:

# aptitude install cntlm

Configurazione

Configurare CNTLM non è di per se difficile una volta capita la logica di fondo, purtroppo la documentazione esistente è (al momento in cui questa guida viene scritta) piuttosto lacunosa nello spiegare alcune opzioni e aspetti.

Per prima cosa si consiglia di terminare l'esecuzione del demone cntlm, poiché è preferibile eseguire inizialmente cntlm direttamente da riga di comando in modo da poter registrare log specifici e aumentare il numero di informazioni fornite dal proxy. Per terminare cntlm digitare:

# /etc/init.d/cntlm stop

Fare una copia del file di configurazione orginale, ad esempio:

# cp /etc/cntlm.conf /etc/cntlm_conf.bak

Quindi editarlo avendo cura di commentare tutte le righe AD ESCLUSIONE di quelle relative alla porta da usare e agli indirizzi da non passare a cntlm:

# List addresses you do not want to pass to parent proxies
# * and ? wildcards can be used
#
NoProxy		localhost, 127.0.0.*, 10.*, 192.168.*

...

# Specify the port cntlm will listen on
# You can bind cntlm to specific interface by specifying
# the appropriate IP address also in format <local_ip>:<local_port>
# Cntlm listens on 127.0.0.1:3128 by default
#
Listen		3128

A questo punto avviare il proxy in modalità test digitando quanto segue:

# cntlm -I -u ''mia_utenza'' -d ''AZIENDA'' -M http://www.google.it ''IP_proxy:porta''

Dove:

  • mia_utenza è l'utenza abilitata ad accedere al server proxy di windows;
  • AZIENDA è il dominio cui appartiene la sopracitata utenza;
  • IP_proxy:porta è l'indirizzo del server proxy windows.
  • I è un opzione che abilita l'immissione della password utente direttamente da terminale, senza cioè doverla specificare in chiaro nella riga di comando (tramite l'opzione -p).

Una volta specificata la password si dovrebbe ottenere una risposta simile alla seguente:

Config profile  1/4... OK (HTTP code: 200)
----------------------------[ Profile  0 ]------
Auth            NTLMv2
PassNTLMv2      FAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKE
------------------------------------------------

Dove FAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKE è un hash generato in funzione di:

  • nome utente
  • dominio
  • password

Si noti che server vecchi potrebbero utilizzare protocolli di autenticazione più vecchi (e meno sicuri) di NTLMv2, in tal caso l'output del precedente comando potrebbe essere significativamente diverso da quello indicato. È possibile ottenere un elenco di tutti e tre i possibili sistemi di cifratura digitando:

# cntlm -H -u ''mia_utenza'' -d ''AZIENDA''

Che resituirà qualcosa di simile a:

PassLM          FAK3FAK3FAK3FAK3FAK3FAK3FAK3FAK3
PassNT          F@KEF@KEF@KEF@KEF@KEF@KEF@KEF@KE
PassNTLMv2      FAKEFAKEFAKEFAKEFAKEFAKEFAKEFAKE    # Only for user 'mia_utenza', domain 'AZIENDA'
Info.png Importante
Il precedente comando calcola solo gli hash della password, NON testa in alcun modo il funzionamento di cntlm. Per testarne il funzionamento è necessario usare l'opzione -M seguita da un indirizzo internet valido

Come specificato nel manuale di cntlm esistono diversi protocolli di autenticazione ciascuno dei quali sfrutta da uno a due sistemi di cifratura:

Auth         |  Requires
-------------+-----------------
NTLMv2       |  PassNTLMv2
NTLM2SR      |  PassNT
NT           |  PassNT
NTLM         |  PassNT + PassLM
LM           |  PassLM

Nella colonna Auth viene indicata la sigla del protocollo di autenticazione, mentre nella colonna requires la sigla dei metodi di cifratura usati per cifrare la password utente (i protocolli sono ordinati in funzione del grado di sicurezza offerto, dove NTLMv2 è il più recente e il più sicuro). Come si vede tutti i protocolli di autenticazione, ad eccezione di NTLM, richiedono un solo sistema di cifratura.

Warning.png ATTENZIONE
PassNT e PassLM cifrano la password senza tenere conto di nome utente e dominio, mentre come già scritto PassNTLMv2 sfrutta anche i suddetti parametri. Ne consegue che gli hash PassNT e PassLM di una certa password sono sempre i medesimi a prescindere dal nome utente e dal dominio specificato, mentre nel caso di PassNTLMv2 cambia in funzione del loro valore





Guida scritta da: Wtf 14:21, 17 feb 2015 (CET) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized