Newsgroup: it.comp.reti.ip-admin
Titolo: vncviewer listen mode e putty

Sto facendo alcuni test per utilizzare vnc per monitorare un server ed 
una macchina ipcop i quali hanno entrambi indirizzi privati.
Io ho invece un ip pubblico.
Volendo fare la cosa in maniera semplice basterebbe impostare sul mio pc 
  vncviewer in listen mode ed eseguire la connessione al mio indirizzo 
ip da vncserver (add new client...).
Pero' tutto il traffico viaggerebbe in chiaro e volevo quindi evitarlo.
Ho fatto quindi alcuni test usando putty come client ssh ed una macchina 
linux come server ssh. La configurazione e' la seguente:
macchina linux:
vncviewer /listen (lanciato da un xterm)
macchina windows:
putty configurato come ssh sull'indirizzo ip della macchina linux con 
tunnel L5500:localhost:5500
Lancio la sessione ed inserisco username e password. Lascio la finestra 
di putty in standby.
Do il comando add new client di vncserver con l'inserimento 
dell'indirizzo 127.0.0.1, il quale causa nella finestra xterm della 
macchina linux il seguente messaggio:
Ccon:   Accepted connection from 127.0.0.1::32774
...
...
main:  local loop-back connections are disabled
e la connessione non avviene.
Qualche idea?
grazie
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 
leggere i messaggi d'errore con /dev/brain connesso e acceso sarebbe gią 
un buon inizio...
a naso (solo per ipotesi, ovviamente) il problema potrebbe essere il 
fatto che le connessioni loopback sono disabilitate.
la soluzione: abilitale.
dopotutto, 'sti cavolo di manuali e files di cfg, sono li apposta, no?
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
| (fake address in reply-to field!)
+-------

 
Infatti. E qui 
http://www.realvnc.com/v4/man/vncviewer.html
 non c'e' 
nulla che riguardi il problema che ho esposto.


 
da qualche tempo, hanno inventato i motori di ricerca.
il tuo problema sarebbe risolvibile in tempo zero su windows, dato che su 
quel so, il server ha la bellissima checkbox che abilita il loopback.
su linux, ci vuole un attimo in pių, ma basta cercare con google e con un 
paio di click trovi addirittura un howto completamente in italiano.
in pių, hai provato a lanciare il server da linea di comando controllando 
se t permette di specificare qualche opzione?


 
Credo che tu non abbia letto bene il mio post. La configurazione che sto 
cercando di approntare non e' quella "standard" descritta nei vari post 
e howto disponibili.
La ripeto casomai non mi fossi spiegato chiaramente.
Ho un pc con ip pubblico (pc1). Da questo pc voglio accedere ad un 
vncserver che si trova su un pc (windows) con ip privato (pc2).
La cosa e' semplicissima se:
Sul pc1 lancio vncviewer il listen mode.
Sul pc2 uso il comando Add new client di vncserver, inserendo come ip 
quello del pc1.
Il problema di questo tipo di connessione e' che la comunicazione tra i 
2 pc non e' criptata.
Volevo quindi provare ad usare ssh per creare un tunnel tra i 2 pc.
Sul pc1 (macchina linux) gira sshd.
Sul pc2 (macchina windows) uso putty.
Sul pc1 do il seguente comando:
vncviewer -listen
(lo stesso comando che do nel caso semplice descritto prima).
Sul pc2 imposto putty per creare una conessione ssh con il pc1 
specificando il seguente tunnel:
L5500:localhost:5500
Ovviamente lancio la connessione e mi loggo senza problemi sul pc1.
Quando sul pc2 do il comando Add new client, sul pc1 appare il messaggio 
che ho riportato nel mio primo post e non avviene nessuna connessione.
ciao


 
il comportamento che descrivi, si presenta quando il server non ha 
abilitate le connessioni loopback.
e il messaggio si presenta appunto sul client, che si vede negato 
l'accesso con quella spiegazione (non conta il fatto che il client sia in 
listening mode).
hai su entrambi i pc la stessa versione di vnc?
hai provato con altre versioni?
con diversi flavour?
hai provato invertendo le impostazioni del tunnel di putty, con le 
options local/remote?
hai l'ultima versione di putty (0.56)?


 
si'.
Il problema credo sia la mia ignoranza nella configurare correttamente 
putty e nell'usare i comandi di chiamata di vnc nel modo giusto.
La comfigurazione che sto cercando di approntare dovrebbe risolvere 
questo problema:
Devo controllare una postazione (pc2) che si trova dietro un 
router/firewall ed e' nattata. La postazione ha un ip privato. Non 
posso/voglio manipolare router e/o firewall.
Il mio pc ha un ip pubblico (pc1).
Quando desidero accedere alla postazione mando un email contenente il 
mio indirizzo ip (o pubblico una pagina html).
Sul pc2 un programma controlla la posta o la pagina e "chiama" con Add 
new client di vncserver il mio pc.
Ho fatto dei controlli con netstat sulle 2 macchine e quello che succede 
e' che non mi sembra che la connessione avvenga attraverso il tunnel.
il comando ssh -L 5500:localhost:5500 pc1 (puttyequivalente) dovrebbe 
servire a far passare dal tunnel la chiamata. Poi pero' bisognerebbe far 
passare dal tunnel anche il resto della comunicazione.
Ho aggiunto anche dei forward per le porte 5900 ma, o non avvien la 
connessione o avviene ma cade immediatamente.
Quel che non mi e' chiaro e' se la chiamata debba essere effettuata con 
un indirizzo locale oppure utilizzando l'indirizzo del pc1 e ci pensa 
putty a far passare il relativo traffico dal tunnel.
Per intenderci se chiamo 127.0.0.1 ottengo l'errore detto prima.
Se uso invece l'indirizzo ip vero la connessione avviene, ma non e' 
criptata.
Leggendo i vari howto mi era sembrato di capire che una volta stabilito 
il tunnel gli indirizzi veri utilizzati dai "comandi" vanno sostituiti 
con gli indirizzi di loopback. Ma forse non ho capito bene.


 pc. 
per VNS è forse più semplice usare SSL, magari con Stunnel. se questa 
soluzione ti garba, posso darti una mano volentieri.
-- 
Ciao, Dmitry

Il 07/12/2004 19.34, Dmitry scrisse:

Va bene qualunque soluzione basta che garantisca un minimo di sicurezza 
nella comunicazione.
Cosa devo installare?
grazie


 L5500:localhost:5500
Ribadisco: devi accettare le connessioni di loopback sul *server*.
-- 
"Io mi sarei aspettato un intervento più misurato dall’assessore Ascoli, 
nel senso che, ospite in questo paese, poteva avere maggiore rispetto..."
(Giannotti di Forza Italia all'assessore Ascoli, ebreo italiano)
http://snipurl.com/antisemitafi

 
Come ho gia' scritto ci ho gia' provato ed in quel caso appare il 
messaggio failed to connect.
E sempre come ho gia' scritto, probabilmente devo inserire altre regole 
di forward oltre a quelle per la porta 5500. Quelle che ho provato 
sinora sulla porta 5900 non hanno dato buoni risultati.
Inoltre avrei bisogno di capire come fare a verificare se la connessione 
passa effettivamente dal tunnel. Dando un netstat (sia su client che su 
server) cosa dovrei vedere? Solo la porta ssh o anche altre connessioni 
e da/a che indirizzi? Localhost o gli indirizzi ip "veri"?


 Cosa devo installare?
stunnel ( 
www.stunnel.org
 ) . Ad installazione avvenuta come servizio 
NT crea questo file di configurazione:
stunnel.conf
------------
debug=5
cert=stunnel.pem
output=stunnel.log
[VNC]
accept=5900
connect=
127.0.0.1:5901
delay = no
------------
Due cose:
1) devi impostare VNC server per lavorare sulla 5901
2) devi impostare VNC server per accettare da Localhost
3) dovresti crearti una chiave .pem o al limite usa quella
   di default.
PS:
ti consiglio UltraVNC che ha un protocollo migliorato e ti permette 
tra le altre cose il file transfer e la gestione con user e pass di 
sitema di NT.
L'installazione è semplicissima, scompatti i file in una cartella (as 
esempio c:\stunnel ) vi copi il programma e le librerie 
crittografiche e il file stunnel.conf che ti ho dato. Poi esegui:
stunnel -install (che ti crea il servizio NT)
lo lanci ovviamente con:
net start stunnel
-- 
Ciao, Dmitry

 
facendo il forward delle porte corrette, hai provato a lanciare il viewer 
normalmente, una volta che la connessione ssh è attiva?


 
Sul pc2 lancio vncserver.
Sul pc2 lancio putty creando una connessione al pc1 con il forward delle 
porte fatto cosi':
L5900	pc1:5900
R5900	pc1:5900
Sul pc1 do il comando vncviewer pc2. La connessione avviene.
A questo punto do il comando netstat su pc1:
locale      remota
pc1:ssh     pc2:1848
pc1:32768   pc2:5900
e sul pc2:
pc2:1848    pc1:22
pc2:5900    pc1:32768
Disconnetto vncviewer.
netstat su pc1:
locale      remota
pc1:ssh     pc2:1848
e sul pc2:
pc2:1848    pc1:22
Aggiungo un altro forward alla connessione di putty:
L5500   pc1:5500
Sul pc1 lancio vncviewer in listen mode e dal pc2 lo contatto con Add 
New Client pc1 e la connessione avviene.
Netstat mi restituisce sul pc1:
pc1:ssh     pc2:1866
pc1:ssh     pc2:1848
pc1:5500    pc2:1867
e sul pc2:
pc2:1848    pc1:22
pc2:1866    pc1:22
pc2:1867    pc1:5500
Dopo aver disconnesso il client sul pc1:
pc1:ssh     pc2:1866
pc1:ssh     pc2:1848
e sul pc2:
pc2:1848    pc1:22
pc2:1866    pc1:22
Come faccio a sapere che effettivamente la connessione sta avvenendo 
attraverso il tunnel?
Inoltre e' corretto effettuare le chiamate (dal client vnc o dal server 
vnc) usando l'indirizzo ip? Pensavo che una volta creato il tunnel si 
dovesse usare localhost...
grazie


 
Sul pc1 (linux) ho installato stunnel con la solita procedura 
(configure/make/make install).
Sul pc2 (windows) ho lanciato stunnel con la configurazione da te 
indicata (non come servizio, ma da linea di comando).
Sul pc2 ho modificato le impostazioni di VNCServer come da te indicato.
Dal pc1 lancio ./vncviewer pc2 ed ottengo il seguente errore:
Ccon   connected to host pc2:5900
main   read:Connection reset by peer (104).
Sul pc2 nel log di stunnel c'e':
2004.12.08 23:51:38 LOG5[600:1664]: stunnel 4.05 on x86-pc-mingw32-gnu 
WIN32 with OpenSSL 0.9.7e 25 Oct 2004
2004.12.08 23:51:38 LOG5[600:1100]: WIN32 platform: 30000 clients allowed
2004.12.08 23:53:33 LOG5[600:1732]: vnc connected from pc1:32772
2004.12.08 23:53:33 LOG3[600:1732]: SSL_connect: 1408F10B: 
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
Le 2 versioni di stunnel (per win e linux le ho scaricate ieri 
contemporaneamente).
Non mi e' chiaro se devo modificare qualche impostazione anche sul pc1. 
Le info che si trovano in rete sembrano piuttosto vecchie e fanno 
riferimento ad opzioni di comando non piu' esistenti...
Questi test li sto facendo tutti su una rete locale, quindi non ci sono 
problemi di router, firewall, ecc.
ciao


 esistenti... 
mah .. sono tutte valide, è stata mantenuta la retrocompatibilità.
PS: hai creato delle nuove chiavi .pem o utilizzi quella di default? 
se si, scrivimi con quali opzioni di OpenSSL hai creato la chiave, il 
problema potrebbe anche essere lì..
-- 
Ciao, Dmitry

 
Sul pc linux la chiave e' stata creata durante l'installazione (mi sono 
stati chiesti alcuni dati tipo localita', stato, ecc.
Sul pc windows la ho creata usando un link ad una pagina web per la 
generazione online della chiave (il link si trova sul sito di stunnel).
Non sono sicuro di avere inserito gli stessi dati usati per linux. Le 
chiavi sulle 2 macchine devono essere uguali?


 uguali? 
la chiave ti serve solo ed eslusivametne sulla macchina che fa da 
server, a meno che non usi dei certificati, ma non è il tuo caso.
RIEPILOGANDO:
MACCHINA Server su cui installi stunnel:
---------------------------------------
debug=5
cert=stunnel.pem
output=stunnel.log
[VNC]
accept=5900
connect=
127.0.0.1:5901
delay=no 
MACCHINA client su cui installi stunnel:
---------------------------------------
client=yes
output=stunnel.log
[VNC]
accept=5900
connect=ip della tua macchina remota:5900
-- 
Ciao, Dmitry

 
Ho provato con queste configurazioni ma senza alcun risultato. Non mi e' 
chiaro pero' come funzioni stunnel e quindi non so nemmeno dirti se ho 
fatto tutto quello che serve. Diciamo che sto leggendo troppi argomenti 
che conosco poco tutti insieme e la mente comincia a vacillare.
Appena ho un po' di tempo lego con calma tutto e ricominciamo.
grazie


Il 09/12/2004 19.52, Dmitry scrisse:
Allora ho fatto qualche prova con piu' calma.
Innanzitutto ho abbandonato la macchina linux perche' non mi serve (mi 
serviva per fare da server ssh, ma con stunnel non ce n'e' bisogno.
Poi ho seguito le indicazioni di questa pagina:
http://faq.gotomyvnc.com/fom-serve/cache/33.html
che sono sostanzialmente uguali alle tue, ma non c'e' bisogno di 
cambiare la porta di vnc.
Sul pc che fa da server vnc stunnel.conf e':
debug=5
cert=stunnel.pem
output=stunnel.log
client=no
[VNC]
accept=7777
connect=5900
delay=no
Sul pc che fa da client vnc:
client=yes
[VNC]
accept=5900
connect=x.x.x.x:7777
Con questa configurazione lancio vncviewer con:
vncviewer 127.0.0.1
E funziona.
A questo punto cerchero' di capire come far funzionare la chiamata dal 
server...
grazie


 
Ho fatto qualche prova, sostanzialmente invertendo i file .conf tra 
server e client, ma la connessione non avviene.
E' strano perche' qui viene descritto abbastanza dettagliatamente come 
fare e la mia configurazione e' identica (a parte i certificati):
http://www.securityfocus.com/infocus/1677
Il log del server e' questo:
2004.12.11 18:11:36 LOG5[1716:1780]: stunnel 4.05 on x86-pc-mingw32-gnu 
WIN32 with OpenSSL 0.9.7e 25 Oct 2004
2004.12.11 18:11:36 LOG7[1716:1760]: RAND_status claims sufficient 
entropy for the PRNG
2004.12.11 18:11:36 LOG6[1716:1760]: PRNG seeded successfully
2004.12.11 18:11:36 LOG5[1716:1760]: WIN32 platform: 30000 clients allowed
2004.12.11 18:11:36 LOG7[1716:1760]: FD 808 in non-blocking mode
2004.12.11 18:11:36 LOG7[1716:1760]: SO_REUSEADDR option set on accept 
socket
2004.12.11 18:11:36 LOG7[1716:1760]: VNC bound to 
0.0.0.0:5500
L'ultima riga appare all'avvio di stunnel, non dopo il tentativo di 
chiamata.
Boh! :-(


 
da quanto hai postato, pare che tu non abbia un granchè chiaro come 
funzionano i tunnel...
se nel viewer imposti come destinazione un ip diverso da localhost, NON 
viene usato il tunnel.
che è appunto quello che salta fuori dai netstat che hai postato.
ovvio che al posto di localhost puoi mettere 127.0.0.1...


 
Non sono messo cosi' male. Semplicemente la configurazione di ssh 
(putty) che mi sembrava piuttosto semplice, non funzionava e quindi mi 
sono venuti un po' di dubbi.
Adesso ho riprovato e funziona tutto. Poiche' l'unica differenza e' 
l'aver installato la versione 4 di realvnc sul server VNC, credo che il 
problema fosse proprio quello.
A memoria storica scrivo quel che ho fatto.
Voglio accedere da una macchina linux (con ip pubblico) ad una macchina 
windows nattata.
Sul pc1 (linux) do il comando vncviewer -listen
Sul pc2 (windows) lancio vncserver abilitandolo a ricevere connessioni 
locali.
Sul pc2 lancio una sessione di putty verso il pc1 con il seguente tunnel
L5500 pc1:5500
Sul pc2 uso l'opzione Add new client di vncserver e chiamo l'indirizzo 
127.0.0.1
Sul pc2 parte la sessione di vncviewer.
Poiche' sono sicuro di aver ripetuto la stessa sequenza di comandi piu' 
volte nei giorni scorsi, senza alcun risultato, il problema risiedeva 
quasi certamente nelle 2 diverse versioni di vnc installate sulle 2 
macchine.


 
Configurazione come sopra, ma usando tightvnc 1.2.9 e la connessione da 
vncserver funziona.
Mistero!


 connessione da vncserver funziona.
lol :) ho idea che tu abbia un pň di confusione in testa :)
-- 
Ciao, Dmitry

Il 14/12/2004 19.20, Dmitry scrisse:

No, no, niente confusione. Se uso VNC "ufficiale" non va, se uso 
TightVnc va.


 TightVnc va.
Hai provato ad usare UltraVNC che permette le sessioni criptate con
l'apposito Plug-In ?
Ciao

Il 28/12/2004 11.00, Sysop scrisse:

Non ho mai utilizzato il plugin, ma anche ultraVnc va bene, basta che 
funzioni...
ciao
