# [RISOLTO] ssh al "contrario" ovvero come passare un firewall

## Ic3M4n

ciao a tutti,

avrei la necessità di collegarmi ad un pc remoto dietro ad un firewall che non posso toccare.

ho però la possibilità di utilizzare una macchina dietro a questo firewall.

ed inoltre il mio pc di casa è reperibile tramite internet in quanto ho il port forwarding abilitato sulla porta di ssh.

ho cercato un po' sul forum e su internet e mi è parso di capire che l'opzione -R di ssh faccia al caso mio, però la man page è un po' criptica sotto questo punto di vista.

 *man ssh wrote:*   

> 
> 
> ~C      Apre la linea di comando (utile solo per aggiungere l'inoltro di porte usando le opzioni -L e -R )
> 
>      ~R      Richiede la reimpostazione della cifratura (possibile solo con la versione 2 del protocollo SSH e a patto che anche la controparte ne dia supporto)
> ...

 

qualcuno può illuminarmi?Last edited by Ic3M4n on Mon Oct 09, 2006 3:09 pm; edited 1 time in total

----------

## Kernel78

Non ho capito molto bene la tua situazione ...

Ci sono due macchine remote (chiamiamole A e B) dietro un firewall e tu hai accesso a una di queste (A) ma non all'altra (B che è quella che ti interessa) e inoltre hai il tuo pc raggiungibile su internet (ma non capisco a cosa serva questa informazione).

Teoricamente se vuoi accedere ad A ti basta collegarti prima a B (a cui affermi di avere accesso) e da li ti colleghi tranquillamente ad A.

Ma temo che le cose non stiano proprio così ...

Aspetto chiarimenti per poterti aiutare meglio.

----------

## codadilupo

 *Kernel78 wrote:*   

> Teoricamente se vuoi accedere ad A ti basta collegarti prima a B (a cui affermi di avere accesso) e da li ti colleghi tranquillamente ad A.
> 
> Ma temo che le cose non stiano proprio così ...
> 
> Aspetto chiarimenti per poterti aiutare meglio.

 

ho capito proprio la stessa cosa, e quoto in pieno  :Wink: 

Coda

----------

## ProT-0-TypE

prova a googlare cercando "reverse shell", dovresti trovare un po di how-to a riguardo

cmq in linea di massima i passaggi sono questi:

remotehost: pc a cui ti vuoi collegare (nattato)

yourhost: pc da cui ti vuoi collegare

Da remotehost dai un:

```
ssh -NR 3333:localhost:22 user@yourhost
```

Invece dal tuo pc (yourhost):

```
ssh user@localhost -p 3333
```

fatto!  :Very Happy: 

----------

## Ic3M4n

appena posso do' un'occhio a quanto detto da ProT-0-TypE. 

adesso non posso perchè non ho nessuno sull'altra macchina che possa dare quei comandi.

credo che la strada da percorrere sia un qualcosa del genere.

per gli altri mi spiace di essermi spiegato male, provo a chiarire un po' le cose.

```

A --- router di A --------------- internet --------------- router di B --- B
```

io sono in A ed ho aperto le porte di router A per poter ricevere connessioni in ingresso. cosa che comunque mi serve.

voglio collegarmi a B, però non posso toccare router di B in quanto non lo amministro.

logicamente avendo router A e B due firewall che consentono le comunicazioni verso l'interno di connessioni già attive volevo sapere se collegandomi da B ad A successivamente io potessi ottenere una shell su A che mi consentisse di comandare direttamente B.

credo che scritto così sia più chiaro, però magari lo è solo per me che conosco il problema.

se avete altri dubbi chiedetemi pure.

----------

## codadilupo

 *Ic3M4n wrote:*   

> appena posso do' un'occhio a quanto detto da ProT-0-TypE. 
> 
> adesso non posso perchè non ho nessuno sull'altra macchina che possa dare quei comandi.
> 
> credo che la strada da percorrere sia un qualcosa del genere.
> ...

 

direi che adesso ha senso... e soprattutto non è quello che hai scritto prima  :Wink: 

P.S.: quando dici "questo" in un testo scritto, si suppone tu stia parlando di qualcosa che hai appena nominato, non di qualcosa che stai indicando con il dito indice nella tua stanza in cui nessuno di noi e' mai stato  :Wink: 

Coda

----------

## ProT-0-TypE

si, è quello che avevo capito e col metodo che ti ho descritto non dovresti avere problemi.

A è yourhost, B è remotehost

Dai prima quel comando da B verso A (che deve a sua volta avere un server SSH)

Poi da A ti colleghi in localhost alla porta 3333 (o quella che hai scelto) e magicamente si aprirà la shell di B  :Very Happy: 

Tra l'altro è possibile creare reverse shell praticamente con tutto: netcat, php, perl, ecc ecc...

----------

## Kernel78

Io situazioni del genere le risolvo con una vpn.

Ho il server VPN sulla macchina A (il mio pc di casa) e il client su B (il pc "irragiungibile"), in questo modo non ho solo la shell ma tutta la comodità di avere le macchine in una rete loro con accessibilità a tutti i servizi in un colpo solo e OpenVPN è veramente facile e veloce da configurare.

----------

## Ic3M4n

 *codadilupo wrote:*   

>  quando dici "questo" in un testo scritto, si suppone tu stia parlando di qualcosa che hai appena nominato

 

beh... infatti è così.

[quote=""Ic3M4n]avrei la necessità di collegarmi ad un pc remoto dietro ad un firewall che non posso toccare.

ho però la possibilità di utilizzare una macchina dietro a questo firewall. [/quote]

la macchina dietro al firewall che oggi a mente fresca ho nominato router di B. in effetti non si capisce molto bene.   :Confused: 

per quanto riguarda la VPN... non saprei, mi sembra molto una cosa statica, a me invece serve potermi collegare occasionalmente per piccole manutenzioni. quindi ho pensato a ssh.

intanto vi ringrazio tutti. 

per il tag [risolto] aspetto la prova pratica sul campo.

----------

## Kernel78

 *Ic3M4n wrote:*   

> per quanto riguarda la VPN... non saprei, mi sembra molto una cosa statica, a me invece serve potermi collegare occasionalmente per piccole manutenzioni. quindi ho pensato a ssh.
> 
> intanto vi ringrazio tutti. 
> 
> per il tag [risolto] aspetto la prova pratica sul campo.

 

Non capisco cosa ti dia questa impressione ... sia per la vpn che per ssh devi dare un comando per collegarti (quindi se deve esserci qualcuno in remoto che lanci un comando, altrimenti non ci sono santi) e puoi sempre interrompere la connessione (sia di ssh che della vpn).

In compenso la vpn ti da molta elasticità in più rispetto a ssh ... poi vedi tu.

----------

## Ic3M4n

forse mi sono fatto un'idea errata di quello che è allora. 

mi informo un po' e gli do un'occhiata visto che la consigli. grazie ancora.

----------

## Ic3M4n

ok. ho provato oggi dai la soluzione proposta da ProT-0-TypE funziona alla grande.

grazie a tutti per l'aiuto.

----------

## maruscya

Ciao a tutti...

Ho letto con particolare interesse il thread in quanto ho necessita' di un servizio simile a questo, ovvero accedere a diverse macchine posizionate dietro ad un FW che non gestisco io. Ora ho fatto dei banali test, e sembra andare tutto bene.... Ho bisogno di qualche chiarimento a rigurado.

```

ssh -NR 3333:localhost:22 user@yourhost

Password:

```

mi viene chiesta la password dell' utente. C'e' modo di passare anche la password da riga di comando ?

----------

## Ic3M4n

devi configurare le chiavi di ssh, crei la chiave per l'utente con ssh-keygen -t dsa o rsa (di solito si consiglia la prima) e copy la publica dei due pc sugli altri.

----------

## maruscya

 *Ic3M4n wrote:*   

> devi configurare le chiavi di ssh, crei la chiave per l'utente con ssh-keygen -t dsa o rsa (di solito si consiglia la prima) e copy la publica dei due pc sugli altri.

 

C'e' bisogno di fare particolare modifiche ai file di configurazione di ssh (sshd_config, etc..) ???

Grazie !

----------

## ProT-0-TypE

fai una ricerca nel forum o su google, ci sono miliardi di info

----------

## Ic3M4n

teoricamente non devi fare modifiche.

Logicamente lascando con una macchina connessa direttamente ad internet l'accesso tramite password hai una grave falla di sicurezza, ma questo a priori.

per togliere l'accesso con password come detto da ProT-0-TypE c'è un sacco di documentazione.

----------

