Dropbox e Proxy NTLM: come metterli d’accordo

ATTENZIONE: Questo post e' stato scritto piu' di 3 mesi fa. Potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a scrivere un commento per chiedere delucidazioni! :)

Ultima modifica: 20/03/2013 ore 12.42


Un post tecnico a metà tra il promemoria e la divulgazione di un workaround, dedicato a chi utilizza Dropbox e lavora nelle reti che usano proxy con autenticazione NTLM. La risoluzione di un problema dovuto ad una momentanea mancanza del noto applicativo di sincronizzazione / backup dei propri dati personali tra le postazioni possedute e il server centrale che conserva le copie per il versioning.

In sintesi, di cosa si tratta:

Windows Challenge/Response (NTLM) is the authentication protocol used on networks that include systems running the Windows operating system and on stand-alone systems.

The Microsoft Kerberos security package adds greater security than NTLM to systems on a network. Although Microsoft Kerberos is the protocol of choice, NTLM is still supported. NTLM must also be used for logon authentication on stand-alone systems. For more information about Kerberos, see Microsoft Kerberos.

NTLM credentials are based on data obtained during the interactive logon process and consist of a domain name, a user name, and a one-way hash of the user’s password. NTLM uses an encrypted challenge/response protocol to authenticate a user without sending the user’s password over the wire. Instead, the system requesting authentication must perform a calculation that proves it has access to the secured NTLM credentials.

Interactive NTLM authentication over a network typically involves two systems: a client system, where the user is requesting authentication, and a domain controller, where information related to the user’s password is kept. Noninteractive authentication, which may be required to permit an already logged-on user to access a resource such as a server application, typically involves three systems: a client, a server, and a domain controller that does the authentication calculations on behalf of the server.

msdn.microsoft.com/en-us/library/aa378749%28VS.85%29.aspx

Per capirci: l’autenticazione NTLM è alla base degli appliance Sophos (serie WS), evidentemente non troppo permissiva per coloro che vogliono utilizzare Dropbox e possono accedere alla rete internet solo attraverso le proprie credenziali di dominio.

Oltre ad attendere che il team di sviluppo faccia lo sporco lavoro di rendere compatibile il protocollo con il passaggio delle credenziali impostate manualmente nelle preferenze (tanto per azzardare un’ipotesi) esiste un workaround dichiarato anche nelle FAQ pubblicate nel sito ufficiale del prodotto:

dropbox.com/help/22

La parola magica è “Cntlm” e permette di far combaciare le richieste dell’applicativo e dell’autenticazione NTLM mettendosi in mezzo tra i due (come a creare un nuovo proxy da far sfruttare a Dropbox). Configurarlo e utilizzarlo è semplicissimo, scaricarlo è completamente gratuito, il progetto risiede su SourceForge:

cntlm.sourceforge.net

Potete scaricare l’applicativo per Windows, Linux o MacOS. Io baserò il mio documento sul primo sistema (quello che uso sul portatile aziendale). Basterà scaricare CNTLM cliccando qui (qui per tutti gli altri sistemi), scompattarlo in una qualsiasi cartella del vostro HD e avviare il file “setup.bat“. Questo copierà alcuni file nel sistema e creerà il servizio “Cntlm Authentication Proxy“, che sarà visibile semplicemente aprendo la finestra dei servizi della macchina (Start / Esegui / services.msc), come in figura:

Cntlm Authentication Proxy - Services.msc

Prima di poter avviare il servizio sarà però necessario configurare le proprie credenziali in un file INI contenuto nella cartella del programma. Lo trovate in C:\Programmi\Cntlm, file cntlm.ini. Basterà inserire lo username, la password ed il dominio, specificare l’indirizzo IP (o il nome) del proxy aziendale, scegliere una porta del sistema locale dove far puntare poi Dropbox e salvare. Uscire quindi dal file per concludere l’operazione:

CNTLM - Configurazione parametri utenza sul proxy

Fatto ciò si potrà avviare CNTLM per poter lavorare con Dropbox. Basterà aprire un prompt di MS-DOS e lanciare la stringa “net start cntlm“, come in figura:

CNTLM - Avviare il servizio - net start cntlm

Fatto questo basterà far passare la comunicazione Dropbox (client / server) dal PC locale che sarà utilizzato come proxy. Andare nelle impostazioni del client (tasto destro sull’icona nella tray, Preferences) ed inserire manualmente le informazioni, come in figura (occhio alla porta se l’avete modificata nel file di configurazione di CNTLM):

Dropbox - Configurazione tramite CNTLM

Così facendo spunterà fuori l’icona attività di Dropbox e i vostri documenti ricominceranno a sincronizzarsi con il server e con le altre postazioni che sfruttano lo stesso account! Va da se che per poter bloccare il servizio basterà lanciare la stringa “net stop cntlm“, sempre utilizzando il prompt dei comandi:

CNTLM - Fermare il servizio - net stop cntlm

Mi pare non manchi proprio nulla a questo punto. Per dubbi e perplessità -come sempre- c’è l’area commenti.

Buon lavoro! :-)

  • http://www.mondowin.com RNiK

    Mi hai letto nel pensiero Gioxx.

    Un paio di settimane fa ho installato Dropbox sul PC aziendale perché speravo di riuscire a far questo ==> http://jonefox.com/blog/2009/11/16/how-to-sync-firefox-across-multiple-computers-using-dropbox/

    Purtroppo i miei tentativi di accedere a Dropbox attraverso il proxy aziendale si sono rivelati vani. Tra le FAQ di Dropbox avevo comunuqe visto nominare CNTLM e l’ho anche scaricato ma devo tutt’ora trovare il tempo di provarlo.

    Comunque, grazie alla tua guida qui sopra, farò molta meno fatica per settarlo e testarlo.

    Grazie! ;)

  • http://gioxx.org gioxx

    @ RNiK:
    sempre a disposizione :p

  • pierpaolo

    Ciao! sono appena arrivato qui casualmente, perchè ho appena settato CNTLM pre dropbox, tutto ok, ma avevo una domanda:
    posso utilizzarlo anche per Last.fm?
    Contemporaneamente LAst.fm e dropbox?
    ciao e grazie

  • pierpaolo

    mi rispondo da solo, si può!
    Basta impostare il localhost e la porta anche su last.fm ;-)
    ciao

  • http://gioxx.org Gioxx

    @ pierpaolo:
    sono arrivato troppo tardi per risponderti :mrgreen:
    In realtà posso confermarti che non importa quante siano le connessioni contemporanee che effettui sul servizio CNTLM, possono passarci tutti gli applicativi che vuoi, il tunnel in quel senso li non è limitato! ;-)

  • http://www.alessandrodagnano.com alessandro d’agnano

    Salve,
    dove scaricare le istruzioni per osx?
    grazie

  • http://gioxx.org Gioxx

    @ alessandro d’agnano:
    ti ho già risposto privatamente dato che mi hai anche mandato una mail (oltre che il commento qui) ;)

  • Spammer 5

    Dropbox è una delle migliori scoperte di questi ultimi anni. Intuitivo, utile e anche relativamente economico (nella versione pro).

  • Flavio

    Ciao Gioxx,
    grazie del tuo prezioso contributo (non tutti si sfogliano le FAQ, anche se sarebbe il primo punto da cui partire).

    Domanda: siccome non posso permettermi di far installare CNTLM su oltre 200 PC aziendali, non c’è altra soluzione per me quindi se non escludere gli URL di destinazione del client DropBox (mediante il proxy.pac che già usiamo), giusto?

    Se si, sapresti aiutarmi a capire quali sono?

    Grazie e saluti,
    F:

  • http://gioxx.org Gioxx

    @ Flavio:
    il tuo caso è effettivamente “pesante” da gestire.
    Sfortunatamente non saprei da dove partire sulla base dei 200 PC, ma potrebbe essere utile sentire il supporto Dropbox (vedi loro forum) per sapere se esiste un metodo più semplice per risolvere il problema alla base :-\

  • Flavio

    Ciao Gioxx, grazie dell’immediata risposta :-)
    Il problema ho scoperto essere legato a questo:

    http://forums.dropbox.com/topic.php?id=60708&replies=11

    Con WireShark, infatti, ho notato che dropbox manda un “Server Hello, Certificate, Server Hello Done” in risposta al “Client Hello”. Il client, però, a sua volta risponde con un “Alert (Level: Fatal, Description: Unknown CA)”…

    Mi sa che devo orientarmi in un’altra direzione…

    Grazie cmq!
    F.

  • http://gioxx.org Gioxx

    @ Flavio:
    di nulla, e grazie per aver condiviso con me quello che hai scoperto in merito ;)

  • ariel

    ciao, grazie per il manuale.
    sono riuscita a far partire il servizio cntlm e configurato il localhost nei settings di dropbox, ma continua a darmi il messaggio di errore “proxy settings incorrect”.
    sapresti aiutarmi a risolverlo?
    grazie in anticipo!

  • http://gioxx.org Gioxx

    @ ariel:
    ciao! Hai modificato il file di configurazione del servizio CNTLM in C:\Programmi\Cntlm? Prova a fare un veloce check tra articolo e quello che hai fatto sul tuo PC per capire cosa potresti aver saltato. Verifica quindi che il servizio sia attivo e prova nuovamente a far connettere Dropbox.

    Eventualmente sostituisci “localhost” con 127.0.0.1 per andare sul sicuro! ;)