mercoledì 11 dicembre 2013

Gestiamoci un proxy in casa con NTLMAPS

In questo articolo, molto letto, spiegavo come far diventare il nostro PC connesso ad una rete cablata un access point wifi per condividere la connessione di rete.
Mi sono trovato ad utilizzare tale soluzione in ambiente di lavoro, dove per uscire su Internet si utilizza un proxy che richiede l'autenticazione, poi un lettore del mio blog mi ha chiesto lumi in merito.
Come di consueto eccomi con il mio articoletto.

Per risolvere il problema ho trovato due strade, una sfrtuttando un'applicazione per Android (ne parlerò forse in un altro post) ed un'altra utilizzando il software opensource NTLMAPS.
In questa pagina  sono andato a scaricare la versione per windows, quella disponibile attualmente è la 0.9.9.6
  • Un doppio click sul file scaricato e subito l'UAC di Windows ci chiede l'autorizzazione.
  • Successivamente ci viene chiesto di accettare la licenza GNU e clicco su I Agree.
  • Ci viene chiesto dove installare il software, il pacchetto di installazione mi propone C:\Program Files (x86)\ntlmaps (ciò mi fà capire che è un applicazione a 32 bit) . Clicco su Install per procedere.
  • Il pacchetto di installazione fà il suo lavoro e clicco su Close.
Non si tratta di un pacchetto di installazione vero e proprio, si tratta di un eseguibile che contiene un file compresso. Una volta scompattato si può spostare la cartella dove si vuole.
Si tratta di un applicazione che non prevede un interfaccia grafica (GUI), che non inserisce alcuna voce nel menu di start, desktop ...
Saremo constretti con Risorse del computer ad andare nella directory di installazione, nel mio caso C:\Program Files (x86)\ntlmaps.
Quì troviamo, tra i file che ci sono stati insyallati tre che ci interessa conoscere:
  • ntlmaps.exe: l'applicazione stessa.
  • ntlmaps.cmd: uno script che ci permette di avviarel'applicazione puntando ad un file di configurazione ben preciso. Contiene una sola riga: ntlmaps.exe -c server.cfg . Utilizzereo questo file da riga di comando MS-DOS o dalla finestra Esgui o Run (se disponibile) per avviare l'applicazione.
  • server.cfg: il file di configurazione di defaul, dove vengono spiegati anche i valori di tutti i campi da configurare (naturalmnete tutto è in inglese). Generalmenteio vado a personalizzare tale file. Prima della personalizzazione mi faccio una copia per mantenere l'originale ... non si sa mai.
Andiamo a vedere come funziona e cosa contiene il file server.cfg. Tutte le righe che cominciano per cancelletto # sono dei commenti, le altre sono relative a parametri.
  • LISTEN_PORT: è la porta dove sarà in ascolto il nostro proxy personale, io abitualmente lascio il default, se non ho altre applicazioni attive che utilizzano questa porta. Il comando MS-DOS per effettuare questa verifica è netstat -an| find "5865" se il valore 5865 non appare nella seconda colonna dell'output dopo i due punti : essa non sarà utilizzata.
  • PARENT_PROXY_PORT: è la porta dove è in ascolto il proxy "ufficiale", di default viene indicata la porta 8080, usata in genere dai proxy. potreste verificarla accedendo all'applicazione inetcpl.cpl, andando nel tab connessioni e poi cliccando su Impostazioni LAN,  è il valore attualmente presente nel campo Porta.
  • PARENT_PROXY: e l'indirizzo del proxy ufficiale. Quì bisogna indicareil valore in genere inserito in inetcpl.cpl, andando nel tab connessioni e poi cliccando su Impostazioni LAN,  è il valore attualmente presente nel campo Indirizzo. Attenzione ho avuto problemi, in passato inserendo il nome del server. Se doveste notare dei malfunzionamenti provate inserendo il suo indirizzo ip. Per ottenerlo dal prompt di MS-DOS è sufficiente eseguire il comando ping nomeproxy (dove nome proxy è il valore indicato sopra). Nell'utput del comando avremmo la scritta, ripetuta diverse volte, Risposta da .. seguito dall'indirizzo IP che ci interessa.
  • ALLOW_EXTERNAL_CLIENTS: di default tale campo ha un valore 0, e non permette di usare tale applicazioni da computer differenti dal proprio. Per i nostri scopi dovremmo mettere 1, sapendo però che in questo modo chi userà tale software utilizzerà anche le nostre credenziali per accedere al proxy.
  • FRIENDLY_IPS: questo campo potrebbe servirci per indicare i computer che potranno utilizzare tale applicazione (indicandoli con nome macchina o indirizzo ip, separati l'un l'altro da spazi). Io in genere non utilizzo tale campo.
  • HOSTS_TO_BYPASS_PARENT_PROXY: quì si potranno indicare quei server che sono in intranet e per cui non bisogna passare per il proxy (indicandoli con nome macchina o indirizzo ip, separati l'un l'altro da spazi) una configuazione analoga la troviamo in inetcpl.cpl -> Connessioni -> Impostazioni LAN -> Avanzate nel campo Eccezioni. Io in cenere faccio un copia e incolla da lì assicurandomi di sostituire i punti e virgola ; di separazione con gli spazi. Anche se non indicato in questo campo si può usare asterisco * come carattere jolly.
  • URL_LOG: di default non è attivo (valore 0), mettendo il valore a 1 verrà creato nella directory diu NTLMAPS il file url.log in cui verranno registrate tutti i siti visitati utilizzando tale applicazione. Io in genere non uso tale possibilità.
  • NT_DOMAIN: è il dominio Windows su cui ci autentichiamo con il PC o verso il server Proxy ufficiale.
  • USER: è l'utente con cui ci autentichiamo sul proxy aziendale.
  • PASSWORD: è la password utilizzata per accedere al proxy aziendale. Attenzione il valore di questo campo va modificato ogni volta che si modifica la password di accesso alla rete.
Il client che si collegherà utilizzando questo proxy, a questo punto dovrà inserire nelle defnizioni proxy l'indirizzo IP con cui si presenta il nostro PC quando fà da hotspot e la porta indicata nel campo LISTEN PORT (5865).
L'indirizzo IP con cui si presenta il mio PC quando attivo l'hotspot è sempre il 192.168.137.1, differente dall'indirzzo IP con cui il mio PC è conosciuto nella LAN.
Non so cosa crei questo indirizzo, lo fà automaticamente Windows. Loposso trovare eseguendo dal prompt di MS-DOS il comando ipconfig. In testa all'output di questo comando potrete vedere due sezioni differenti una relativa alla "Scheda Ethernet Connessione alla rete locale (LAN)" ed una relativa alla "Scheda LAN wireless Connessione rete wireless 2" (così s chiama nel mio PC), l'informazione necessaria si evince da quest'ultima.