Posts Tagged ‘tcp’

Configurare un proxy SOCKS over SSH con putty e firefox per aggirare il proxy aziendale

In questa guida vedremo come configurare una connessione ssh in modo da ottenere un proxy SOCKS. Essa può essere utile per by-passare il proxy aziendale e navigare anche su siti normalmente bloccati e, quindi, inaccessibili.

Requisiti di fattibilità sono:

  1. avere un pc linux a casa con un server ssh in ascolto sulla porta 22
  2. avere la porta 22 dalla intranet non bloccata verso internet
  3. conoscere l’ip del server (anche tramite dns dinamico come dyndns) e impostare il ruoter con port forwarding sulla porta 22 verso il pc linux
  4. avere un pc client con installato il client putty e il browser firefox

Iniziamo con il configurare correttamente il client ssh putty, per fare ciò dobbiamo conoscere l’ip pubblico del pc linux su cui è installato il server ssh, lasciamo impostata la porta 22, connection type selezionato su ssh e diamo un nome alla connessione (tipo “TUNNEL”); dopodiché facciamo Save.


Successivamente, dal menu a sinistra, selezioniamo connection. Nel campo “Seconds between keepalives” impostiamo 1 e flagghiamo le 2 opzioni sotto, principalmente “Enable TCP keepalives“.

putty connection

 

Da connection spostiamoci nel sottomenu connection->proxy e inseriamo i dati del proxy a cui siamo collegati per andare su internet specificando il tipo di proxy, l’ip o il nome del proxy, la porta su cui è in ascolto e le credenziali, se ci sono.

putty proxy

 

Nel menu connection->SSH->Tunnels valorizziamo il campo “Source port” con una porta a nostra scelta ma superiore alla 1024 (ad es. la 5000), sulle opzioni sotto scegliamo “Dynamic” e “Auto” e clicchiamo su “Add“: comparirà nel box l’indicazione Dxxxx dove xxxx è la porta scelta.

putty tunnel

Infine, torniamo nel menu session e facciamo salva per memorizzare i parametri. Tutti i parametri per la connessione e il relativo tunnel sono impostati, quindi facciamo click su “Open” per far partire la connessione e inseriamo nome utente e password. Se non ci sono stati intoppi la connessione con il server è instaurata e il tunnel ssh è già in funzione.

Il passo successivo è la configurazione di firefox per utilizzare il tunnel come un proxy SOCKS. Dal browser andiamo sul menu strumenti->opzioni->avanzate->rete, troveremo la voce “Determina come firefox si collega a internet” e clicchiamo su impostazioni. Si aprirà una nuova finestra dove dovremo impostare “Configurazione manuale dei proxy” e valorizziamo solamente la voce Host SOCKS con il valore 127.0.0.1, come porta quella impostata nel tunnel (nell’esempio è la 5000) e selezioniamo SOCKSv5.

impostazione proxy firefox

Facciamo ok. Se la configurazione è terminata correttamente, una volta instaurata la connessione ssh potremo navigare con firefox utilizzando il nostro pc linux di casa finché non verrà chiusa la connessione.
Ovviamente, la configurazione del proxy può essere cambiata non solo su firefox ma su un qualsiasi browser o programma che consentono di inserire a mano le impostazioni proxy, come ad esempio explorer, skype, antivirus e torrent.

Nel caso in cui il firewall aziendale blocchi la porta 22 basterà modificare la porta di ascolto del servizio ssh (e il relativo port forwarding sul router di casa) sulla porta 80 o sulla porta 443 verso il pc linux dato che tali porte saranno sicuramente aperte.

Configurazione delle ACL: standard, extended e named. Posizionamento

Nel precedente articolo abbiamo iniziato a trattare l’argomento delle ACLs con una panoramica teorica e pratica sulle wildcard e sui tipi di ACLs. Abbiamo, inoltre, visto la configurazione di una semplice ACL standard. Prima di passare in questo articolo alle Extended ACLs, terminiamo dicendo che nelle Standard ACL (ma anche nelle altre) è possibile inserire un commento per meglio identificare l’ACL in maniera pratica e veloce tramite il comando remark (comando opzionale).
Per inserire il commento a una ACL esistente bisogna inserire il comando:

Router(config)#access-list numero remark commento

L’ultimo comando utilizzabile è il comando log (comando opzionale) alla fine della dichiarazione di una ACL: esso crea una serie di informazioni di logging sui pacchetti inviati o bloccati dalle ACLs. In tali informazioni si trovano il numero dell’ACL, il numero di pacchetti passati o scartati e  l’IP sorgente. In generale il comando per impostare una ACL standard è:

Router(config)#access-list access-list-number {permit deny} {test-conditions}

più le eventuali opzioni.

Passiamo adesso alle Extended ACLs che sono spesso preferite alle Standard ACLs in quanto sono configurabili con molti più parametri: esse possono fare un controllo sull’IP sorgente, su quello di destinazione, sul protocollo e sul numero di porta.
Le Extended ACLs sono caratterizzate da numeri identificativi che vanno da 100 a 199 e da 2000 a 2699; vanno applicate il più vicino possibile alla sorgente di traffico. Facciamo un esempio pratico per capire come settare questo tipo di ACL.

Supponiamo di voler bloccare il telnet dall’host 192.168.50.15, la regola sarà:

Router(config)#access-list 101 deny tcp host 192.168.50.15 eq telnet

oppure

Router(config)#access-list 101 deny tcp host 192.168.50.15 eq 23

Per prima cosa identifichiamo l’ACL con un identificativo nel range apposito, successivamente va indicato il protocollo (nel nostro caso il tcp) e l’indirizzo con la wildcard mask. Nel nostro esempio si è usato il comando host al posto della wildcard 0.0.0.0; infine va indicato il servizio o la porta da bloccare. Il resto dei comandi resta uguale alle standard ACLs:

Router(config)#interface {interfaccia}
Router(config-if)# ip access-group numero_acl {in|out}

Le ACLs viste finora sono dette numbered poiché la singola ACL è identificata da un identificativo numerico. Oltre ad esse vi sono le ACLs basate sul nome, dette named ACLs. Le ACLs named possono essere sia standard che estese e il tipo va specificato in sede di configurazione nel seguente modo:

Router(config)#ip access-list {standard|extended} ACL-name

Nelle named ACLs il comando access-list è preceduto dal comando ip. I vantaggi di tali ACL sono:

  • possibilità di utilizzare caratteri alfanumerici per identificare l’ACL (anche semanticamente più facili da ricordare);
  • non vi è alcun limite al numero di named ACLs;
  • possono essere modificate senza cancellare completamente l’ACL e riconfigurarla.

Dove vanno posizionate le ACLs?
La regola generale è quella di posizionare le extended ACLs il più vicino possibile alla sorgente di traffico da bloccare per bloccare i pacchetti il prima possibile. Le standard ACL non specificano l’indirizzo di destinazione, pertanto le standard ACLs vanno posizionate il più vicino possibile alla destinazione. Questo impedisce che venga bloccato anche traffico utile che invece non va controllato.

Terminiamo questo articolo dicendo che le ACLs possono essere utilizzate anche per limitare gli accessi sulle virtual ports, dette anche vty lines, attraverso il comando access-class al posto di access-group. Tale procedura serve ad aumentare la sicurezza della rete; ad esempio, serve a limitare l’accesso al router tramite telnet (connessione vty). Il procedimento per la creazione di una vty access list è la stessa di quella descritta per le interfacce a parte il comando access-class. Facciamo un esempio: supponiamo che gli utenti della rete 192.168.10.0/24 possano utilizzare le virtual ports mentre bisogna bloccare i rimanenti accessi utilizzando una standard ACL con identificativo 5; i comandi saranno:

Router(config)#access-list 5 permit 192.168.10.0 0.0.0.255
Router(config)#access-list 5 deny any

Applichiamo adesso l’ACL:

Router(config)#line vty 0 4
Router(config-line)#login
Router(config-line)#password secret
Router(config-line)#access-class 5 in

Nota: per la ACL su vty line possono essere applicate solo ACLs numbered e non named.