Newsgroup: it.comp.os.linux.sys
Titolo: Verificare porte non filtrate dal  firewall in uscita

Ciao a tutti e buon inizio settimana.
Sapete indicarmi un modo per verificare quali porte sono aperte in uscita su un firewall perimetrale esposto su internet?
Ho la necessità di capire da una determinata lan quali sono le porte che il firewall blocca o non blocca in uscita verso internet nel range 1-65535.
L' ideale sarebbe averci una macchina remota in listening sull' intero range di porte TCP sulla quale tentare di instaurare una connessione con nmap, ma ciò non mi risulta al momento fattibile...
Ho googlato un po' ma con scarso successo...qualcuno sa indicarmi una soluzione "alternativa" ?
Grazie






Il sistema vero te l'ha detto Davide.
Un altro sistema è, via hping*, mandare un SYN sulla porta desiderata di
un host remoto, specificando un TTL piu' breve di quello necessario (ma,
ovviamente, bastante a superare il fw con un certo margine).
Se il fw non riscrive il TTL e nessuno fa scherzi, avrai:
* porta filtrata:	nessuna risposta, oppure un RAP:
	ICMP Port Unreachable from ip=$FIREWALL_IP name=$FIREWALL_NAME
* porta permessa:	TTL Exceeded da un hop intermedio [1] oppure
			Connection Refused [2]
	TTL 0 during transit from ip=... name=...
	len=46 ip=<TARGET> flags=RA seq=0 ttl=119 ...
* porta ridiretta (transparent proxying):
        len=46 ip=<TARGET> flags=SA DF seq=0 ttl=63 [3]
In alcuni sistemi, i pacchetti in uscita con un TTL basso fanno scattare
un warning - non c'e' motivo per cui qualcuno si balocchi con traceroute
o strumenti di firewalking. Comunque, finche' il sysadmin non comincia a
buttarti giu' la porta ad asciate e infila la testa nel buco chiamandoti
"Wendy", dovresti stare a posto.
Leonardo
[1] tuttavia alcuni host in questo caso non fanno proprio niente, quindi
    la prima prova andrebbe fatta con una porta certamente permessa e su
    un host compliant e raggiungibile (trovato per tentativi, suppongo).
[2] difficile che un fw simuli un "refused" da remoto completo di un TTL
    credibile.
[3] <TARGET> da una porta permessa mi manda ttl 50. ttl 63 vuol dire che
    chi mi risponde sembra TARGET, ma è qualcuno molto più vicino, e con
    ogni probabilità a solo 64-63 = 1 hop da me, ossia al 99% il fw. Per
    cui, se 
www.maiale.it
 vi risponde con ttl 63, sappiate regolarvi: il
    suino può fare male alla salute.
-- 
Enough, enough!  But, stranger, ere we part,
Glancing farewell to each nefarious bier,
This warning would I beg you take to heart:
There is an end to e'en the worst career!

 Davide
 of importance the entire day. What a waste.
E fin li non ci piove, ma:
-Potresti essere in una rete gerarchica su più livelli dove ogni
livello ha un firewall gestito da una persona diversa e tu sei infondo
alla "cascata", dovresti quindi "risalire" la struttura per avere un
quadro completo.
-Il sysadmin attuale potrebbe aver ereditato una struttura esistente
di cui non conosce la configurazione ne tantomeno le password dei
dispositivi (Caso attuale).
-Il servizio potrebbe essere in outsourcing e queste informazioni
essere considerate "confidenziali", per cui non ottenibili se non
attraverso procedure burocratiche...
-Potrebbe interessarti capire se un firewall funzioni secondo le tue
intenzioni.

 	ICMP Port Unreachable from ip=$FIREWALL_IP name=$FIREWALL_NAME
[ ... ]
Questa è una risposta.
Ma non esiste nessun servizio online che abbia in listening tutte le
porte tcp con dei servizi fasulli su cui eseguire un banale nmap?
Comunque la soluzione della discriminazione via TTL potrebbe aver una
buona logica.

 			Connection Refused [2]
iptables -A FORWARD -p tcp -j REJECT --reject-with tcp-reset
:-P
(certo, anche in questo caso, con un'analisi su TTL...)


CLAP CLAP per il post.
Io lo metterei nei 10 migliori post dell'anno!




Non che l'abbia mai fatto, ma stavo pensando che DOVREBBE essere possibile
far girare quei pacchetti per mangle e impiegare il target TTL... ]:-D
Leonardo


porte tcp con dei servizi fasulli su cui eseguire un banale nmap?
Non che io sappia. Nonostante la legge di Cartesioft ("Mi serve, dunque
esiste") :-)
Uno può farselo con un iptables che ridirige ogni bene alla porta echo.
Non capisco però questa voglia di passare per forza da nmap.
Leonardo


 porte tcp con dei servizi fasulli su cui eseguire un banale nmap?
Una cosa simile la fa honeyd
-- 
"Never underestimate the bandwidth of a station wagon full of tapes
hurtling down the highway" - Andrew S. Tanenbaum
http://blog.mainardi.me
python -c "print 'bG9ybWF5bmFAZ21haWwuY29t'.decode('base64')"

 
secondo me e' il metodo che fa acqua.
avendo l'apparato in funzione ricavare la configurazione.
mah...
se ti aspetti di avere porte filtrate in uscita non stai configurando
gli apparati di casa o di una azienda con esigenze base (per base intendo 
navigazione e poco altro: in pratica la cfg di default dei router soho 
che si trova in tante aziende medio-piccole).
e allora ti conviene capire che servizi devono/vogliono filtrare e 
riconfigurare di conseguenza, piuttosto che cercare di capire che 
parametri ha impostato un altro sysadmin per poi tentare di replicare il 
comportamento dell'apparato.
anche perche' se cerchi di replicare andando a tentativi e il cliente si 
accorge che qualcosa non funziona piu' come prima, poi la colpa e' colpa 
tua perche' hai tu in carico l'apparato.
imo due strade:
- metti in chiaro che lasci l'apparato com'e' e non ti puoi prendere (non 
che non vuoi) la responsabilita' della manutenzione perche' non hai 
accesso all'aggeggio
- avvisi l'utente che resetti l'apparato per causa di forza maggiore (non 
hai accesso alla configurazione) e che la cfg sara' da verificare con lui 
man mano che verranno fuori le esigenze (a meno che non abbia gia' un bel 
foglietto con la lista dei servizi necessari...)
io voto per la seconda: oltre a fare una figura piu' professionale ti 
eviti possibili grane...
-- 
Paolo opg
BE AWARE that this post uses a fake reply-to address
to contact me write to:
janickg ( at ) hotmail ( dot ) com
--

 ovviamente, bastante a superare il fw con un certo margine).
[..]
I like this. ;)
ciao, f.