Avanti Indietro Indice

8. Il Proxy Server SOCKS

8.1 Impostazione del Proxy Server

Il proxy server SOCKS è disponibile su ftp://sunsite.unc.edu/pub/Linux/system/Network/misc/socks-linux-src.tgz. In questa directory, esiste anche un esempio di file di configurazione denominato "socks-conf". Decomprimere ed eseguire l'untar dei file all'interno di una directory del proprio sistema, e seguire le istruzioni su come effettuare make. Personalmente ho avuto un paio di problemi durante make. Assicurarsi che i Makefile siano corretti.

È importante notare che il proxy server deve essere aggiunto in /etc/inetd.conf. È necessario aggiungere una riga:

  socks  stream  tcp  nowait  nobody  /usr/local/etc/sockd  sockd

per dire al server di entrare in esecuzione quando richiesto.

8.2 Configurazione del Proxy Server

Il programma SOCKS ha bisogno di due file di configurazione separati. Il primo per informare sugli accessi autorizzati, il secondo per instradare le richieste al proxy server appropriato. Il file di accesso dovrebbe essere localizzato sul server. Il file di instradamento dovrebbe trovarsi su ogni macchina Unix. I computer DOS e, presumibilmente, i Macintosh eseguiranno da se il proprio instradamento.

Il file di accesso

Con socks 4.2c Beta, il file di accesso è denominato "sockd.conf". Dovrebbe contenere 2 righe, una riga permit e una riga deny. Ogni riga conterrà tre campi:

L'identificatore è di tipo permit oppure deny. È consigliabile avere sia la riga permit, sia la riga deny.

L'indirizzo IP è un indirizzo a 4 byte in una tipica notazione IP. Ossia, 192.168.2.0.

Anche il modificatore di indirizzo è un tipico indirizzo IP rappresentato da un numero di 4 byte. Funziona come un netmask. Supponiamo che questo numero sia a 32 bit (1 o 0). Se il bit è un 1, il bit corrispondente dell'indirizzo che sta controllando deve essere uguale al corrispondente bit nel campo dell'indirizzo IP.

Ad esempio, se la riga è:

    permit 192.168.2.23 255.255.255.255

saranno ammessi solo gli indirizzi IP i cui bit corrispondono 192.168.2.23, ossia, solo 192.168.2.23. La riga:

    permit 192.168.2.0 255.255.255.0

ammetterà ogni numero all'interno del gruppo da 192.168.2.0 a 192.168.2.255, l'intero dominio di Classe C. Non si dovrebbe avere la riga:

    permit 192.168.2.0 0.0.0.0

dal momento che ammetterà ogni indirizzo, indistintamente.

Pertanto, prima di tutto abilitare tutti gli indirizzi che si vogliono abilitare, negare i restanti. Per ammettere tutti nel dominio 192.168.2.xxx, le righe:

    permit 192.168.2.0 255.255.255.0
    deny 0.0.0.0 0.0.0.0

funzioneranno correttamente. Notare "0.0.0.0" iniziale nella riga deny. Con un modificatore di 0.0.0.0, il campo dell'indirizzo IP non è rilevante. Tutti zero è la norma perché è semplice digitarli.

È consentito più di una voce di ciascun tipo.

È anche possibile fornire o negare gli accessi a degli utenti specifici, tramite l'autentificazione ident. Non tutti i sistemi supportano ident, tra cui Trumpet Winsock, pertanto questo argomento non sarà trattato in questa sede. Si veda la documentazione di socks per maggiori informazioni.

Il file di instradamento

Il file di instradamento in SOCKS è infelicemente chiamato "socks.conf". Il nome è molto simile a quello del file di accesso, pertanto potrebbe essere facile confonderli.

Il file di instradamento informa il client SOCKS su quando utilizzare socks e quando non farlo. Ad esempio, nella nostra rete, 192.168.2.3 non avrà bisogno di utilizzare socks per parlare con 192.168.2.1, il firewall, in quanto possiede una connessione diretta via Ethernet e definisce automaticamente 127.0.0.1, il loopback. Naturalmente non è necessario SOCKS per parlare a se stessi.

Esistono tre voci:

Deny informa SOCKS su quando respingere una richiesta. Questo voce possiede gli stessi tre campi già descritti per sockd.conf: identificatore, indirizzo e modificatore. Generalmente, dal momento che questo viene gestito anche da sockd.conf, il file di accesso, il campo del modificatore è impostato a 0.0.0.0. Se si vuole precludere se stessi dal chiamare qualsiasi posto, può essere fatto in questo punto.

La voce direct informa sugli indirizzi per i quali non deve essere utilizzato socks. Si tratta degli indirizzi che possono essere raggiunti senza il proxy server. Ancora una volta, abbiamo i tre campi: identificatore, indirizzo e modificatore. Il nostro esempio avrebbe:

    direct 192.168.2.0 255.255.255.0

che permette di andare direttamente a qualsiasi cosa nella nostra rete protetta.

La voce sockd informa il computer su quali host possiedono il demone di server socks. La sintassi è:

  sockd @=<serverlist> <IP address> <modifier>

Si noti la voce @=. Questa permette di impostare gli indirizzi IP di una lista di proxy server. Nel nostro esempio, viene utilizzato un unico proxy server. Tuttavia, è possibile averne molti per consentire un carico maggiore e per avere a disposizione una ridondanza in caso di errore.

I campi di indirizzo IP e di modificatore funzionano esattamente come negli altri esempi.

DNS da dietro un firewall

L'impostazione del Domain Name Service da dietro un firewall è un compito relativamente semplice. È necessario solamente impostare il DNS sulla macchina con firewall. Quindi configurare ogni macchina dietro al firewall in modo che possa utilizzare questo DNS.

8.3 Lavorare con un Proxy Server

Unix

Per fare in modo che le proprie applicazioni funzionino con il proxy server, devono essere ``SOCKettizzate''. Sono necessarie due diverse tipologie di telnet, una per la comunicazione diretta, una per la comunicazione tramite il proxy server. SOCKS fornisce delle istruzioni su come SOCKettizzare un programma, come pure un paio di programmi pre-SOCKettizzati. Se si utilizza una versione SOCKettizzata per andare direttamente da qualche parte, SOCKS si commuterà automaticamente nella versione diretta. Per questo motivo, vogliamo rinominare tutti i programmi sulla rete protetta e sostituirli con i programmi SOCKettizzati. "finger" diventa "finger.orig", "telnet" diventa "telnet.orig" ecc. Bisogna informare SOCKS di ognuno di questi cambiamenti tramite il file include/socks.h.

Alcuni programmi saranno in grado di gestire l'instradamento e la SOCKettizzazione per conto loro. Netscape è uno di questi. È possibile utilizzare un proxy server sotto Netscape inserendo l'indirizzo del server (192.168.2.1 nel nostro caso) nel campo SOCKS sotto i Proxy. Ogni applicazione avrà bisogno di almeno qualche modifica, indipendentemente da come gestisce un proxy server.

MS Windows con Trumpet Winsock

Trumpet Winsock viene già distribuito con il supporto intrinseco per i server proxy. Nel menu di "setup", inserire l'indirizzo IP del server, e gli indirizzi di tutti i computer raggiungibili direttamente. Quindi, Trumpet gestirà tutti i pacchetti in uscita.

Come far funzionare il Proxy Server con i pacchetti UDP

Il pacchetto SOCKS funziona solamente con i pacchetti TCP, non con quelli UDP. Questa caratteristica lo rende leggermente meno utile. Molti programmi utili, come talk e Archie, utilizzano UDP. Esiste un pacchetto studiato per essere usato come un proxy server per pacchetti UDP denominato UDPrelay, di Tom Fitzgerald <fitz@wang.com>. Sfortunatamente, nel momento in cui viene scritto questo documento, non è compatibile con Linux.

8.4 Svantaggi dei Proxy Server

Il proxy server è, soprattutto, un dispositivo di sicurezza. Un suo utilizzo per aumentare l'accesso ad internet con indirizzi IP limitati causerà molti svantaggi. Un proxy server consentirà un maggior accesso dall'interno della rete protetta verso l'esterno, ma manterrà l'interno completamente inaccessibile dall'esterno. Ciò implica l'impossibilità di avere connessioni server, talk o archie oppure mail dirette verso i computer presenti all'interno. Questi svantaggi potrebbero sembrare irrilevanti, ma bisogna pensare ad essi in questi termini:

FTP provoca un altro problema con un proxy server. Quando si riceve o si esegue un comando ls, il server FTP apre un socket sulla macchina client e invia le informazioni attraverso esso. Un proxy server non permetterà di farlo, pertanto FTP non funziona molto bene.

Inoltre, i proxy server sono lenti. A causa del sovraccarico maggiore, quasi ogni altro mezzo per ottenere questo accesso sarà più veloce.

Sostanzialmente, se si possiedono gli indirizzi IP, e non ci si preoccupa della sicurezza, non utilizzare un firewall e/o i proxy server. Se non si possiedono gli indirizzi IP, e non ci si preoccupa della sicurezza, si potrebbe pensare di utilizare un emulatore IP, come Term, Slirp o TIA. Term è disponibile su ftp://sunsite.unc.edu, Slirp su ftp://blitzen.canberra.edu.au/pub/slirp, e TIA su marketplace.com. Questi pacchetti saranno più veloci, consentiranno connessioni migliori e forniranno un livello maggiore di accesso alla rete interna da Internet. I proxy server vanno bene per le reti con molti host che si vogliono connettere alla rete esterna con una sola impostazione e con poco lavoro successivo.


Avanti Indietro Indice