Newsgroup: it.comp.sicurezza.varie
Titolo: Intercettare le richieste di binding sulle porte...

Salve.
Su altri ng più vicini alla programmazione in sé, non hanno saputo
rispondermi. Spero di non essere troppo OT qui.
Sono in ambiente Windows NT/2k/2k3.
Dovrei sviluppare un programma che esegua queste operazioni:
	a) si metta in ascolto su una o più porte (per es. sulla 80),
intercettando non solo le richieste di connessione verso quelle porte,
ma anche le richieste, da parte di altri programmi, di mettersi in
ascolto su tali porte [cioè, dopo averlo avviato e bindato alla porta
80, il mio programma dovrebbe intercettare anche la richiesta di un
eventuale web server che vuole mettersi in ascolto su tale porta]
	b) gestisca i due diversi tipi di richieste in modo trasparente
all'applicazione richiedente. E cioè:
		b1) se è una richiesta di messa in ascolto su una porta (es. web
server di prima), deve dire al server: "ok, ti ho bindato alla porta
80", ma in realtà deve bindare il web server su un'altra porta (es.
10080)
		b2) se è una richiesta di connessione (es. client che vuole
connettersi al web server), deve rigirare la richiesta alla porta reale
(continuando l'esempio, la 10080), prendere l'output e rigirarlo al
client, come se nulla fosse anormale.
Il tutto dev'essere possibile, sia chiaro, su una singola macchina.
E' possibile far tutto ciò? Immagino di sì, dal momento che la gestione
del NATting dovrebbe funzionare in un modo simile. Solo che qui siamo su
un'unica macchina, abbiamo a disposizione solo l'indirizzo di loopback.
E, di norma, siamo in quello che in ambiente unix è lo user space, non
come iptables. Se magari conoscete un qualche programma che faccia ciò
che chiedo (magari anche Open Source! ;D), sarebbe una conferma che sia
possibile farlo. Al limite, se è possibile farlo, ma non restando in
user space, sono disposto anche ad imparare i meandri di Windows...
Comunque sia, grazie mille per qualsiasi suggerimento!
Maurizio
ps. se mai avrà inizio, il progetto sarà rilasciato come Free Software.


---CUT 

 ---CUT
A me pare di no... Certo, potrebbe essere il quoting a canazzo a darmi
questa impressione.
Cioe', svolge funzioni di transparent proxy, ma anche di packet filter e di
falso in bilancio... Nel senso che deve scavalcare le funzioni standard
delle librerie winsock per far credere ai server che la loro bind() sia
andata a buon fine quando invece e' fallita (se la porta e' gia'
bindata...), oppure stare su un layer piu' basso ed analizzare il traffico
in modo che il server sia si' bindato, ma comunque il software sia sempre in
mezzo ai pacchetti; a occhiometro serve un vxd, oppure vanno sostituite le
librerie winsock che pero' sono file protetti.
ciaotutti,
*
-- 
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

 librerie winsock che pero' sono file protetti.
Non mi pare che Maurizio chiedesse di fare del packet filtering ma posso 
sbagliare.
Comunque sono d'accordo con te che non basti un programma che gira in user 
mode. 

 Mi pare che tu stia descrivendo un proxy.
A me sembra piů un portmapper, qualcosa tipo questo:
http://www.analogx.com/contents/download/network/pmapper.htm
ma un po' piů evoluto.
Bye, G.

 ma un po' più evoluto.
Si hai ragione tecnicamente è un portmapper anche se i software generalmente 
indicati come proxy fanno un po di tutto, anche i portmapper.