PDA

View Full Version : Putty 500 server error


maximovic
07-04-2008, 10:17
Salve, sto cercando di impratichirmi con ssh, seppure utilizzando windows xp. Spero non abbia sbagliato a postare qui.
Cercavo di creare un ssh tunnel tra il il pc work e il pc casa.
pc casa: windows xp, ADSL, ssh server su 433, porta 443 forwardata su ip locale della mia lan
Pc work: è dietro un proxy server di tipo http su porta 80

Utlizzo putty da pcwork come client ssh. Non riesco a stabilire la connessione con il pc di casa per il seguente errore:
proxy error 500 server error
Mi chiedo se questo messaggio può significare che il mio proxy blocca il traffico ssh?

Se cambio porta (per esempio 22) ho il msg
proxy error: 403 forbidden
Vuol dire che la porta 22 è bloccata?

Qualche dritta o suggerimento?
Grazie.

vampirodolce1
07-04-2008, 10:39
Sul pc di casa attiva uno sniffer (tcpdump va piu' che bene), in modo da vedere se arrivano i pacchetti dal pc dell'ufficio.

Ricontrolla le impostazioni di putty, in particolare la parte del proxy, prova a specificare il tipo 'http proxy'.
Come primo tentativo lascia perdere il forwarding di porte, vedi prima se la tua chiamata arriva a destinazione.

maximovic
07-04-2008, 11:07
Ti ringrazio. Proverò.
Nel frattempo ho provato la connessione con host fittizi a cui putty mi rispondeva bad gateway o server closed network connection, qundi non più con proxy error 500 server error.
Mi basta questo per dire che il proxy non blocca ssh?
Se cosi fosse allora il problema è da ricercare nel server ssh su pc casa.
Sul pc casa ho Apache che è in ascolto su porta 80. Può interferire con il server ssh?
Grazie

maximovic
07-04-2008, 11:08
---

vampirodolce1
07-04-2008, 12:07
Lascia apache sulla 80 e metti ssh sulla 22 o dove vuoi tu; due servizi non possono usare la stessa porta.
In putty specifica IP e porta del proxy nella scheda Connection-Proxy e in Proxy-type prova a selezionare HTTP. L'IP e la porta del tuo server di casa vanno indicati nella scheda Session.
Probabilmente se fai puntare putty direttamente a server:22 non ci arrivi perche' il firewall aziendale ti blocca, mentre se punti a server:22 attraverso un http_proxy non dovresti avere probemi. Nel mio caso faccio cosi', anche il port forwarding funziona alla perfezione.
Unico neo e' che non riesco a fare x-forwarding, perche' il server cerca di utilizzare il display del proxy e non quello del mio pc (di fatto il server vede solo il proxy). Tempo fa un utente mi ha consigliato l'uso di un port forwarding + VNC server: http://www.hwupgrade.it/forum/showthread.php?t=1687201

Mitur
07-04-2008, 17:10
Approfitto di questa discussione per chiedere un'altra cosina! :D
con la mia connessione di casa che non e' proprio una scheggia non riesco a lavorare in remoto con putty perche' mi si blocca di continuo... esiste un'alternativa o e' solo un problema di velocita'?

vampirodolce1
08-04-2008, 07:09
Si blocca in che senso? Con la 56k riesco a lavorarci, controllare la posta, fare tutto come se fossi fisicamente davanti al pc... e passo attraverso un proxy, figurati... Ovviamente di grafica non se ne parla.
Assicurati di abilitare la compressione nella configurazione di ssh.
Che connessione hai?

Mitur
09-04-2008, 14:18
Ho una 2 mega, ma forse dipende anche un po' dal fatto che ho un portatile vecchio con la ram quasi completamente mangiata. Ho provato con un altro portatile, piu' nuovo, e dura un po' di piu', ma ad un certo punto si blocca lo stesso cioe' si arriva ad un punto in cui non e' piu' possibile digitare nulla ne' fare nulla salvo chiudere la sessione e riaprirla. Parzialmente sara' anche questione di connessione e quindi di velocita' di invio dati, ho notato che se ad esempio lancio comandi molto velocemente (es. arrivare a una serie di sottodirectory via tab) si blocca prima. Comunque, anche lavorando "piano" e con un altro computer, prima o poi arriva il fatidico momento di chiudere la sessione! che nervi...

Tasslehoff
09-04-2008, 14:38
Ho una 2 mega, ma forse dipende anche un po' dal fatto che ho un portatile vecchio con la ram quasi completamente mangiata. Ho provato con un altro portatile, piu' nuovo, e dura un po' di piu', ma ad un certo punto si blocca lo stesso cioe' si arriva ad un punto in cui non e' piu' possibile digitare nulla ne' fare nulla salvo chiudere la sessione e riaprirla. Parzialmente sara' anche questione di connessione e quindi di velocita' di invio dati, ho notato che se ad esempio lancio comandi molto velocemente (es. arrivare a una serie di sottodirectory via tab) si blocca prima. Comunque, anche lavorando "piano" e con un altro computer, prima o poi arriva il fatidico momento di chiudere la sessione! che nervi...Onestamente faccio fatica a pensare a problemi di prestazioni con una connessione ssh, non credo ci sia un sistema di controllo remoto più leggero, giusto telnet :eek:

Il carico sulla cpu è estremamente ridotto, dovresti aprire decine e decine (per non dire centinaia) di connessioni e tunnel per cominciare a farti sentire sulla cpu anche di un sistema data e carico (io uso tunnel multipli e incrociati usando rispettivamente un Epia con via C3 da 533MHz e un Pentium II 266, e non ho mai mai mai avuto problemi prestazionali).

Se quando sei connesso in ssh la digitazione è lenta verifica la disponibilità di banda in upload sulla tua connessione di casa, ne basta poca, ma quel poco deve esserci. Ad es se hai sistemi di p2p attivi a casa vedi di limitare la banda in upload e tenerti giusto quei 5-10KBps riservati per collegarti agevolmente in ssh.

Se la connessione si interrompe i motivi possono essere molteplici, ma è più facile che si tratti di una interruzione nella connessione dovuta al proxy che a problemi di performance o di banda, eventualmente prova ad abilitare la funzione keepalive presente nell'opzione Connections di Putty.
Concordo poi con l'abilitazione della compressione del traffico ssh (opzione -C da linea di comando).

Suggerisco poi di cercare una porta tcp che sia aperta in outbound sulla connessione da cui fai partire il tunnel, anche nelle reti blindate c'è sempre qualche porta che viene lasciata aperta per utilizzi vari.
Ad es dal cliente dove mi trovo ora prima c'erano aperte un sacco di porte e avevo solo l'imbarazzo della scelta, ora hanno fatto un repulisti generale e hanno lasciato aperto soltanto la 23 (telnet) probabilmente per non aver disagi nella connessione alle console degli switch e degli apparati di rete.
Una volta identificata la porta è sufficiente che natti la 22 del suo server locale di casa sull'interfaccia pubblica del tuo router usando quella porta, in questo modo bypassi il proxy, riduci la complessità e migliori sicuramente le prestazioni sulla connessione.

Se usate spesso i tunnel ssh suggerisco poi l'utilizzo di comodo frontend di putty (per la precisione di plink, una delle altre utility della suite di cui fa parte putty), è utile per non tener aperte vistose e scomode finestre di terminale che in alcuni casi possono essere compromettenti.
Il software si myentunnel --> LINK (http://nemesis2.qx.net/software-myentunnel.php)

vampirodolce1
09-04-2008, 14:41
A fini di test potresti provare a collegarti via telnet (porta 23) per vedere se il problema si ripresenta. Se si ripresenta direi che e' un problema di server o di connettivita' generale TCP, una impostazione da regolare in /proc/sys/net/ (ipotesi remota cmq.), ecc.; se con telnet funziona tutto, il problema e' nel servizio sshd, magari la versione non e' aggiornata, o nella sua configurazione.
Eventualmente abilita la compressione dei dati, anche se dubito che il problema sia nella banda disponibile.

maximovic
17-04-2008, 20:14
Salve, sto cercando di impratichirmi con ssh, seppure utilizzando windows xp. Spero non abbia sbagliato a postare qui.
Cercavo di creare un ssh tunnel tra il il pc work e il pc casa.
pc casa: windows xp, ADSL, ssh server su 433, porta 443 forwardata su ip locale della mia lan
Pc work: è dietro un proxy server di tipo http su porta 80
Utlizzo putty da pcwork come client ssh. Non riesco a stabilire la connessione con il pc di casa per il seguente errore:
proxy error 500 server error


Allora ho risolto il problema. La causa era un cattiva configurazione del ssh server. Ora va tutto bene, ho fatto fwd di porte, tutto ok.
Adesso stavo cercando di provare il reverse tunnelling (connessione da casa a pc ufficio), ma ho delle difficoltà.
1) il pc di casa, che fa da webserver e sul quale c'è anche il server ssh ha ip 192.168.1.3. E' controllato tramite vnc dal pc 192.168.1.2. Sul pc ufficio ho installato un vnc server e ho fatto un reverse tunnelling R5900:localhost:5900 e ho attivato "remote ports do the same". Adesso vorrei collegarmi da 192.168.1.2 a pc ufficio con VNC. Metto in VNC come server 192.168.1.3 (che sarebbe il mio localhost) ma mi collego al pc 192.168.1.3 e non all'ufficio. Forse dovrei segliere nell'attivazione del remote tunnelling una nuova porta R newport:localhost:5900 e quando avvio VNC da 192.168.1.2 mettere come server 192.168.1.3:newport?

2)Vorrei navigare nella intranet aziendale da casa. è possibile farlo sfruttando il tunnel ssh? Ho fatto diverse prove senza successo

3)La posta in ufficio è impostata tramite microsoft exchange server. Cosa devo fare per leggerla da casa possibilmente da 192.168.1.2?

Ho finito! Scusate la lunghezza. Spero possiate darmi qualche dritta.
Grazie,
Massimo

Tasslehoff
18-04-2008, 00:28
1) il pc di casa, che fa da webserver e sul quale c'è anche il server ssh ha ip 192.168.1.3. E' controllato tramite vnc dal pc 192.168.1.2. Sul pc ufficio ho installato un vnc server e ho fatto un reverse tunnelling R5900:localhost:5900 e ho attivato "remote ports do the same". Adesso vorrei collegarmi da 192.168.1.2 a pc ufficio con VNC. Metto in VNC come server 192.168.1.3 (che sarebbe il mio localhost) ma mi collego al pc 192.168.1.3 e non all'ufficio. Forse dovrei segliere nell'attivazione del remote tunnelling una nuova porta R newport:localhost:5900 e quando avvio VNC da 192.168.1.2 mettere come server 192.168.1.3:newport?Confesso che non ho mai usato l'opzione di putty "remote ports do the same", così a occhio dovrebbe fare il bind di quella socket in modo che stia in ascolto per tutti su una interfaccia di rete del server ssh e non solo il localhost.
La documentazione di Putty parla chiaro e dice che serve necessariamente il supporto al protocollo SSH2 cosa che di default OpenSSH non ha abilitato
The source port for a forwarded connection usually does not accept
connections from any machine except the SSH client or server machine
itself (for local and remote forwardings respectively). There are
controls in the Tunnels panel to change this:

- The `Local ports accept connections from other hosts' option
allows you to set up local-to-remote port forwardings (including
dynamic port forwardings) in such a way that machines other than
your client PC can connect to the forwarded port.

- The `Remote ports do the same' option does the same thing for
remote-to-local port forwardings (so that machines other than
the SSH server machine can connect to the forwarded port.) Note
that this feature is only available in the SSH-2 protocol, and
not all SSH-2 servers honour it (in OpenSSH, for example, it's
usually disabled by default).
Verifica che quel requisito sia soddisfatto.
Poi prima di collegarti creando il tunnel collegati normalmente in ssh al server ssh e lancia un netstat -an | find /I "listen" se Windows o netstat -an | grep -i listen se Linux e verifica che non ci sia già un server VNC in ascolto sulla porta 5900 del server ssh stesso.
Per tagliare la testa al topo puoi forwardare su una porta differente proprio come suggerivi.

Per fare una ulteriore prova (se l'opzione "remote ports do the same" non dovesse servire) puoi creare un tunnel con forward remoto di vnc del pc dell'ufficio su una porta libera del server ssh (come suggerivi tu), poi dal pc 192.168.1.2 lanci un ulteriore tunnel ssh verso 192.168.1.3 per mappare in locale la porta dove hai messo in ascolto il server vnc dell'ufficio tramite il precedente tunnel.
Un doppio tunnel ssh praticamente, una volta fatto sul pc 192.168.1.3 dovresti riuscire a collegarti all'ufficio mettendo come indirizzo del server localhost indicando la porta che hai scelto come destinazione del secondo tunnel.
E' più facile farlo che spiegarlo :D

2)Vorrei navigare nella intranet aziendale da casa. è possibile farlo sfruttando il tunnel ssh? Ho fatto diverse prove senza successoPossibilissimo, la logica che ci sta dietro è la stessa del tunnel ssh con l'opzione -R che vuoi usare per vnc, però c'è un dettaglio su cui devi fare molta attenzione e che è fondamentale.
I tunnel ssh operano a livello di trasporto di rete, non a livello applicativo.
Per VNC ad es è sufficiente forwardare (o mappare, usa il termine che preferisci) una porta tcp di un ip su un'altra porta tcp di un altro ip usando ssh come veicolo di incapsulamento.
La tua intranet (come quasi tutti i siti web, che siano ad uso interno, pubblico o misto non importa) però non è un servizio di rete che sfrutta solo il livello di trasporto di rete, ma anche il livello applicativo.
Questo significa che il webserver che ci sta dietro si aspetta due cose:
1) una chiamata su una porta tcp ben precisa, ad es la porta 80 o 443 (e questo lo risolvi con il tunnel)
2) una richiesta http che nell'header faccia riferimento a un hostname ben preciso, l'hostname su cui deve rispondere il sito (questo è proprio il livello applicativo di cui parlavo)

Se tu ti limiti a mappare via tunnel ssh la porta 80 o 443 e provi a navigare l'ip dall'altro capo del tunnel sulla porta forwardata, è come se navigassi il semplice indirizzo ip del server della intranet sulla porta su cui sta in ascolto.
Il webserver molto facilmente risponderà picche oppure risponderà su un sito web di default che proababilmente non corrisponderà a quello che tu vorresti vedere.
Dopo questa pappardella (spero di non essere stato pedante, non è mia intenzione, solo che non so che familiarità tu abbia con questo genere di cose), la soluzione consiste nel
1) forward remoto di quel servizio tramite tunnel ssh con il tuo server di casa
2) andare sul server ssh di casa e impostare nel file /etc/hosts (se linux) o c:\windows\system32\drivers\etc\hosts (se windows) un nuovo hostname nella riga corrispondente all'ip del localhost (127.0.0.1); quell'hostname deve essere lo stesso che tu butti nel browser al lavoro quando vai ad accedere alla intranet
Nel caso tu volessi navigare la intranet dal pc 192.168.1.2 vale lo stesso discorso fatto prima riguardo all'opzione di putty "remote ports do the same", ammesso che funzioni dovrai mettere nel file hosts del pc la riga
192.168.1.3 hostname_intranet

3)La posta in ufficio è impostata tramite microsoft exchange server. Cosa devo fare per leggerla da casa possibilmente da 192.168.1.2?Dipende da che protocollo usate con Exchange (sentite condoglianze per l'mta che usate :( ), POP3, Imap o altro di proprietario.
Se è POP3 devi fare un tunnel forwardando la porta 110, se è imap la porta 143, altrimenti scopri qual'è la porta usata in caso di protocollo proprietario.
In questo caso si tratta cmq di un servizio becero come VNC, quindi non devi mappare nessun hostname nel file hosts

maximovic
18-04-2008, 13:43
Ciao grazie per l'esauriente risposta.
Poichè non ho molto familiarità con tutto questo, prendo gli spunti che mi hai dato per approfondire alcune cosette e fare alcune prove.
A presto.
Massimo

maximovic
26-05-2008, 14:45
Salve avevo lasciato tempo fa in sospeso questa discussione che ora mi piacerebbe riprendere contando sui vostri preziosi consigli.
Ricapitolando, sono riuscito a creare una connessione sicura ssh tra il pc aziendale e quello di casa (ssh server) e con il port forwarding (local e remote) ho utlizzato delle applicazioni dall'ufficio che diversamente non avrei potuto usare.
Adesso volevo navigare da casa nella intranet aziendale e ho seguito i suggerimenti di Tasslehoff:
Con Putty dal pc ufficio creo il tunnel e remote forwarding R80:localhost:80
Edito da casa il file hosts 127.0.0.1 intranet.ufficio.it
Inserisco nel browser da casa http://intranet.ufficio.it, ma senza nessun risultato.
Dove sbaglio?
Grazie.

P.S. per Tasslehoff: l'opzione Remote ports do the same funziona