Software/ Delegate, un proxy tuttofare

Delegate è un proxy server molto completo e affidabile che merita senz'altro attenzione, specie considerando che è open source e gira su parecchie piattaforme, fra cui Linux. Uno sguardo al software


DeleGate, attualmente arrivato alla versione 6.1.17, è un proxy server open source e multipiattaforma che permette gestisce diversi protocolli TCP/IP fra cui HTTP, Gopher, Whois, FTP, Telnet, NNTP, SMTP, POP3. DeleGate dunque media una comunicazione tra il server ed i client, questa comunicazione è isolata da una sorta di firewall per garantire la sicurezza.

Se necessario DeleGate permette servizi di cache, la risoluzione dei nomi di dominio e la conversione dei carattere JIS dal proxy per le macchine client. DeleGate può essere anche utilizzato come server originale per servizi come HTTP, FTP (in sola lettura), NNTP e DNS, può anche essere utilizzato come TCP Wrapper se avviato tramite il demone INETD.

DeleGate può essere compilato per le seguenti piattaforme:
– Unix (AIX, EWS4800, HP-UX, HI-UX, IRIX, NeXT, NEWS-OS, Digital-UNIX, Solaris, BSD/OS, FreeBSD, Linux, NetBSD, OpenBSD, etc.);
– Windows (Win32: Windows95 and WindowsNT, BOW);
– OS/2 (EMX runtime).

DeleGate può essere suddiviso in due tipi di proxy: “SPECIALISTA” e “GENERALISTA”. Visto dalla parte dei client, Delegate “SPECIALISTA” è un server che gestisce uno specifico protocollo, viene avviato su un host ben definito nella rete, nel nostro caso potrebbe trattarsi di un server HTTPD o FTPD. Delegate da “SPECIALISTA” genera la riscrittura delle URL e ridireziona la risposta del server verso il client.
DeleGate “GENERALISTA” accetta le richiesta nella modalità “protocollo Delegate”, le reindirizza verso il server originale, il quale invia la risposta al DeleGate “GENERALISTA”; i dati relativi verranno posizionati nella cache. Delegate “GENERALISTA” all’interno della rete interna accetta le richieste da qualsiasi host della stessa rete.

La pagina Web di DeleGate è alla url http://wall.etl.go.jp/delegate/
Le informazioni di base sono alla url http://wall.etl.go.jp/delegate/tutorial/


Per i test ho utilizzato le versioni 5.9.2-OS/2/1 e 5.9.12 OS/2/1, la release che utilizzo ora sulla macchina di produzione è la 6.1.12 OS/2/1.

Le prove sono state effettuate sui seguenti protocolli a livello di applicazione:
– Proxy HTTP, FTP e Gopher (porta 8088/3128)
– Proxy POP (porta 110 di base e 8080)
– Proxy SMTP (porta 25 di base e 8081)
– Server Web HTTP (porta 80)

La procedura d’installazione è quella relativa ad un sistema con unità a disco contaddistinte dalla lettera dell?unità, verrà quindi adottata la seguente convenzione ?$=unita’disco:? quindi ?C:?)
Le operazioni dovranno essere effettuate su ?$? dove il programma viene installato, non è richiesta alcuna modifica al path, devono essere presenti le seguenti variabili, nel caso specifico ho modificato il file in inizializzazione del sistema OS/2 che è il config.sys.

– SET USER=nomeutente
– SET HOME=$dir-utente

Scompattare il file in una directory come $/delegate, creare la directory $/tmp/delegate, il proxy si occuperà di creare la directory $/var.
La via più semplice per usare DeleGate come Proxy HTTP sulla porta 8080 è eseguire il programma con questi parametri:

delegated -P8080 SERVER=http

Per abilitare il logging (tracciamento) e le funzionalità di cache sarà necessario creare le seguenti directory:

UNIX and OS/2:
$/var/spool/delegate/ — root directory per log e cache(VARDIR)
$/var/spool/delegate/cache/ — directory per la cache (VARDIR/CACHEDIR)


La validità dei dati contenuti nella cache può essere controllata utilizzando i parametri EXPIRE e CRON:

EXPIRE=1d CRON=”0 * * * * -expire 2d”

DeleGate, implicitamente permette l’accesso alla sola rete locale ma è possibile veicolare gli accessi al proxy tramite l’utilizzo del parametro PERMIT:

PERMIT=”*:*:genius.miohost.com,192.168.0.0/255.255.255.0,*.tuohost.net”

Elenco dei flag utilizzabili dalla linea di comando per l’avvio di DeleGate:

-P <porta sulla quale viene avviato il server
-nowait -wait / vengono specificati nel file indetd.conf qualora il proxy venga attivato tramite il demone inetd
-P :
-v avvia un processo di foreground, i log vanno su video
-vv maggiori informazioni sui log
-vt
-vd
-F le funzioni sono kill e cgi

E’ possibile eseguire DeleGate in modalità debug, le informazioni sul funzionamento verranno visualizzate direttamente sullo schermo:

delegated -v …..seguono altri parametri

Ferma il server DeleGate avviato sulla porta 8080:

delegated -Fkill -P8080

DeleGate permette di leggere i parametri direttamente da un file di testo, è infatti possibile indicare il percorso di tale file:

delegated +=$/path/of/parameters.txt

Con DeleGate è possibile restringere i newsgroup da fornire ai client:

delegated -P8119 SERVER=nntp://news.cs.interbusiness.it/it.comp.os2,it.hobby.cucina

DeleGate può essere utilizzato anche come semplice server Web:

-v -P81 ADMIN=root@miohost.net SERVER=http REMITTABLE=file MOUNT=”/*
file:/delegate/documentation/*”

Per rendere ancora più semplice la comprensione di questo splendido strumento fornisco una piccola selezione di esempi pratici:

– DeleGate / Proxy http, https/{443,563}, gopher, ftp, wais su porta 8088, avviato in modalità debug, Amministratore ADMIN, permessi di accesso dichiarati, tempo di scadenza della cache (1D).

delegated -v -P8088 ADMIN=root@miohost.com SERVER=http PERMIT=”*:*:localhost,192.168.0.0/255.255.255.0,*.miohost.com” EXPIRE=1d
CRON=”0 * * * * -expire 2d”

– DeleGate / Proxy per servizi POP, modalità debug, Amministratore ADMIN, permessi di accesso dichiarati su localhost, sottorete 192.168.0.1, tutti gli host del dominio miohost.bbs

delegated -v -P8081 ADMIN=root@miohost.com SERVER=pop://miohost.com
PERMIT=”*:*:localhost,192.168.0.0/255.255.255.0,*.miohost.com”

– DeleGate / Proxy per servizi SMTP, modalità debug, Amministratore ADMIN, permessi di accesso dichiarati, sottorete 192.168.0.1, tutti gli host del dominio miohost.com

delegated -v -P8080 ADMIN=root@miohost.com SERVER=smtp://miohost.com
PERMIT=”*:*:localhost,192.168.0.0/255.255.255.0,*.miohost.com”

– Ecco un’esempio di DeleGate come server http, la linea di comando sottostante permette accessi illimitati da tutte le reti, sia intranet che internet, per rendere accessibile il servizio sono stati utilizzati i tag REMITTABLE, RELIABLE, REACHABLE e PERMIT, questo server monta in lettura ben tre directory, una da disco (file), le altre due vengono virtualizzate dal proxying un server FTP e da un server NNTP.

delegated.exe -vv -P81 ADMIN=root@miohost.com SERVER=http
REMITTABLE=+,http,ftp,nntp RELIABLE=* REACHABLE=* PERMIT=”*:*:*” MOUNT=”/*
file:/delegate/documentation/*” MOUNT=”/hobbes/* ftp://hobbes.nmsu.edu/*”
MOUNT=”/news/* nntp://news.cs.interbusiness.it/it.comp.os2/*”

Questo è l?elenco dei protocolli supportati da questo splendido proxy server

– FTP (*proxy+origin, cache, mount)
– Gopher (*proxy, cache)
– HTTP (*proxy+origin, cache, gateway(FTP,Gopher,NNTP,Wais), mount)
– NTP (proxy+origin, cache, gateway(POP), mount, MIME)
– POP (*proxy, gateway(NNTP), mount, MIME)
– SMTP (proxy, gateway(NNTP), MIME)
– Telnet (*proxy, X-Window)
– Wais (proxy)
– LDAP (*proxy)
– LPR (proxy, gateway(FTP))
– X-Window (proxy)
– CU-SeeMe (proxy)
– ICP (proxy, origin)

Certamente l?argomento meriterebbe maggiori approfondimenti e non credo di sbagliare nell?affermare che questo strumento software, sconosciuto sino ad oggi ai più, consente a qualsiasi amministratore di rendere la rete sicura, performante e flessibile.

Stefano Tagliaferri

La tua email sarà utilizzata per comunicarti se qualcuno risponde al tuo commento e non sarà pubblicato. Dichiari di avere preso visione e di accettare quanto previsto dalla informativa privacy

Chiudi i commenti