[Tecnica] ssh gaia unreachable

Szymon Stefanek pragma a siena.linux.it
Dom 17 Set 2006 14:50:42 BST


On Sunday 17 September 2006 18:01, Michele "O-Zone" Pinassi wrote:

> > Perchè l'errore restituito dal sistema è un "Network is unreachable"
> > invece di un "Connection Refused" ?
>
> da quale sistema ? il tuo casalingo ?

Yep. Ma anche da quello di GTL e di Iakko (se ho capito bene).

> > La parte rilevante del tcpdump di "ssh -l utente gaia.siena.linux.it"
> > è il seguente:
> >
> > 13:36:56.025639 IP (tos 0x0, ttl  64, id 13087, offset 0, flags [DF],
> > proto: TCP (6), length: 60) ppp-234-4.27-151.libero.it.35165 >
> > gaia.siena.linux.it.ssh: S, cksum 0x2ac8 (correct),
> > 4185561033:4185561033(0) win 5800 <mss 1450,sackOK,timestamp 10134742
> > 0,nop,wscale 7>
> >
> > 13:36:56.232156 IP (tos 0x0, ttl  49, id 0, offset 0, flags [DF], proto:
> > TCP (6), length: 40) gaia.siena.linux.it.ssh >
> > ppp-234-4.27-151.libero.it.35165: R, cksum 0x4ea6 (correct), 0:0(0) ack
> > 4185561034 win 0
> >
> > e qui "Network is unreachable".
> >
> > Qualcuno sa dare una spiegazione ?
>
> Finalmente un questito interessante. Se non sbaglio il pacchetto di
> risposta di Gaia contiene, giustamente, un ACK RST (Reset) che indica una
> porta chiusa/servizio non disponibile. Fosse stata una porta bloccata da
> firewall avresti avuto un tipo di risposta diversa.

Infatti il RST c'è. Gaia sembra comportarsi in modo corretto: nessuno
ascolta sulla 22, che non è filtrata; il sistema risponde con un RST
che di solito corrisponde ad un Connection Refused.

> Leggo da http://www.freesoft.org/CIE/RFC/1812/105.htm:
>
> [CUT]
> The ICMP Destination Unreachable message is sent by a router in response to
> a packet which it cannot forward because the destination (or next hop) is
> unreachable or a service is unavailable.
> [/CUT]

Se gaia fosse del tutto morta avrei probabilmente ricevuto un 
ICMP "Destination Unreachable" dall'ultimo hop raggiungibile.
Se la 22 fosse filtrata con regola REJECT allora avrei ricevuto un "Port 
Unreachable" da gaia stessa. Se fosse filtrata con regola DROP non avrei
ricevuto nessun messaggio di risposta.
Il fatto è che non cadiamo in nessuno di questi casi. Niente ICMP di risposta.

Prova a ssh-arti in locale su una porta "vuota" qualunque.
I pacchetti che vedi passare sono esattamente gli stessi (almeno per quanto 
riguarda la parte decodificata da tcpdump), ma l'errore che ti becchi 
è "Connection Refused".

etherea pragmaware # ssh -p 100 -l pragma 127.0.0.1
ssh: connect to host 127.0.0.1 port 100: Connection refused

etherea venariasync # tcpdump  -vvv -i lo
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes

15:46:14.206348 IP (tos 0x0, ttl  64, id 14820, offset 0, flags [DF], proto: 
TCP (6), length: 60) localhost.55649 > localhost.100: S, cksum 0x9bc0 
(correct), 1556306382:1556306382(0) win 32792 <mss 16396,sackOK,timestamp 
55271466 0,nop,wscale 7>

15:46:14.246827 IP (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: TCP 
(6), length: 40) localhost.100 > localhost.55649: R, cksum 0x2176 (correct), 
0:0(0) ack 1556306383 win 0

E qui il "Connection Refused".

Nel caso di gaia invece ci si becca(va) il "Network is unreachable".

Ci deve essere qualche differenza "nascosta" (cioè che tcpdump non decodifica
nemmeno con il -vvv) oppure qualche differenza di elaborazione all'interno
del kernel a seconda del host target.... oppure mi sta sfuggendo qualcosa.

-- 

Szymon Stefanek

------------------------------------------------------------------------------
-
- A red sign of the door of a physics professor:
- if this sign is blue you're going too fast
-
------------------------------------------------------------------------------
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: non disponibile
Url:         http://liste.siena.linux.it/pipermail/tecnica/attachments/20060917/7a1e412c/attachment.pgp


Maggiori informazioni sulla lista Tecnica