Remote Desktop su ssh tunnel

Con i tunnels ssh è possibile trasportare sessioni TCP all’interno di connessioni criptate. Questo consente di raggiungere in sicurezza computer protetti da firewall o di utilizzare computer gate per raggiungere computer con le porte bloccate verso l’esterno.

Di seguito viene indicato come utilizzare un tunnel ssh per connettersi utilizzando il protocollo RDP ( Desktop Remote Protocol )  ad un Server Windows 2012 in Remote Desktop ( RDP ) da un computer Debian 9.xx .

Le connessioni RDP avvengono normalmente utilizzando la porta 3389.

Situazione

[ local machine] Debian 8.xx    ——–>  [ 182.193.135.162 ] gate CentOS 7.xx  ———–>  10.20.5.152 [ server di destinazione ] Windows Server 2012

  • pc gate  ip  rete interna  = 10.20.5.156  –  ip rete esterna = 182.193.135.162
  • Server Windows ip  rete interna  = 10.20.5.152  .- ip rete esterna assente o porta verso l’esterno bloccata

Come premesso per raggiungere il pc target  non esposto sulla rete è possibile passare per il gate Centos e grazie ad un tunnel ssh avere la porta remota 3389 sulla porta locale 33890  .

ssh -fNg  -L33890:10.20.5.156:3389 root5@182.193.135.162

-L porta-locale:host-remoto:port-remota  (-L  Local port forwarding )
-f ssh va in background (demonize)
-g permette al computer remoto di connettersi alle porte locali inoltrate
-q quiet mode. Molti warning e messaggi vengono soppressi
-N informa OpenSSH che non si intende eseguire un commando nel host remoto
-i  identity file
-v verbose

Usando certificato .pem  ( scritto in ascii e codificato base-64 con prefisso )

ssh -fNg -L33890:10.20.5.156:3389 root5@182.193.135.162 -i "~/.ssh/WebKeyPair.pem" 

 

a questo punto utilizzando rdesktop oppure remmina oppure KRDC sara possibile raggiungere il server Windows puntanto alla porta 127.0.0.1:33890

KRDC

 

Elencare e Terminare connessione ssh

Elencare le connessioni “ssh” attive.

1) ps

ps -afx | grep [s]sh     # preferibile

2 )  pgrep

 
pgrep -af ssh 
677 /usr/sbin/sshd -D
1234 /usr/bin/ssh-agent /usr/bin/im-launch x-session-manager
1580 ssh -fN -L 33895:10.30.2.125:3389 centos@118.134.238.166 -i ~/.ssh/CorpWebKeyPair.pem
1617 ssh -i ~/.ssh/CorpWebKeyPair.pem centos@118.134.238.166

3) netstat

netstat -anpt | grep -E "ssh"
 
netstat -anpl | grep  [s]sh
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      677/sshd            
tcp        0      0 127.0.0.1:33895         0.0.0.0:*               LISTEN      1580/ssh            
tcp        0      0 192.168.5.89:33776      118.134.238.166:22       ESTABLISHED 1580/ssh            
tcp        0      0 127.0.0.1:33895         127.0.0.1:48294         ESTABLISHED 1580/ssh            
tcp        0      0 192.168.5.89:33780      118.134.238.166:22       ESTABLISHED 1617/ssh            
tcp6       0      0 :::22                   :::*                    LISTEN      677/sshd            
tcp6       0      0 ::1:33895               :::*                    LISTEN      1580/ssh            
unix  2      [ ACC ]     STREAM     LISTENING     20893    1234/ssh-agent       /tmp/ssh-cPUkJ3zPtqaw/agent.1179
unix  2      [ ACC ]     STREAM     LISTENING     22567    1163/systemd         /run/user/1000/gnupg/S.gpg-agent.ssh
unix  3      [ ]         STREAM     CONNECTED     14006    677/sshd   

 

per chiudere  una connessione ssh basta killare  il processo  individuato con   ps -afx | grep  [s]sh .

kill 6726   # se il processo è dell'utente     
o    
su
kill 6726   # va bene per tutti i processi

per chiudere tutti le connessioni ssh possiamo fare il “killall” di tutti i processi ssh

killall ssh

quindi per terminare con kill il processo ssh sulla porta 33895 ID 1580

kill 1580

Risorse:


		
Annunci

Remmina remote deskotp client arch linux

Remmina è  un client per desktop remoto in GTK+ che supporta diversi protocolli: RDP, VNC, SSH, NX, SFTP  XDMCP. Remmina è un software open-source efficace con un interfaccia user-friendly che consente di gestire una molteplicità di connessioni.  Le opzioni utilizzabili in remmina con relative schermate nel post Remmina remote deskotp client.

In arch linux remmina è scaricabile con il tradizionale comando

sudo pacman -S remmina

remimna 1.1.2 arch

Avvertenza perchè i protocolli supportati in particolare RDP siamo presenti senza essere costretti ad effettuare un logout installare preventivamente i pacchetti che supportano i vari protoccoli.

I pacchetti indicati come collegati a RDP è che consentono la gestione dei vari protocolli sono i seguenti:

freerdp  telepathy-glib nxproxy libvncserver xorg-server-xephyr

Quindi per avere remmina subito operativo con tutti i protocolli senza soprese conviene installare preventivamente i gli stessi un comando cumulativo risulta essere:

sudo pacman -S freerdp telepathy-glib nxproxy libvncserver xorg-server-xephyr remmina.

Risorse:

Installare FreeNX in Ubuntu 12.04

FreeNX alla pari di vnc e rdp consente di connettersi ad un desktop da pc remoto. FreeNX è veloce, sicuro può utilizzare SSH, non ha un limite nel numero di connessioni possibili ed è opensource. Per avere FreeNX operativo bisogna installare il server freenx e utilizzare un client NX.
FreeNX server in Ubuntu 12.04 e 10.04
FreeNX server in Ubuntu 11.04
client nx

FreeNX server in Ubuntu 12.04 e 10.04

per installare FreeNX server in Ubuntu 12.04 e 10.04 aggiungere il repository ppa di freenx quindi update e install

sudo add-apt-repository ppa:freenx-team
sudo apt-get update
sudo apt-get install freenx

Installati i pacchetti è necessario scaricare, decomprimere e copiare nxsetup.sh script

wget https://bugs.launchpad.net/freenx-server/+bug/576359/+attachment/1378450/+files/nxsetup.tar.gz

tar -xvf nxsetup.tar.gz
sudo cp nxsetup /usr/lib/nx/nxsetup

Quindi installare alla richiesta

Do you want to use your own custom KeyPair? [y/N]

preferire N scelta di default

sudo /usr/lib/nx/nxsetup --install

Per avviare o fermare freenx server

sudo service freenx-server <start|restart|stop|force-reload|status>

o /etc/init.d/freenx-server <start|restart|stop|force-reload|status>

client nx

come client NX si piò utilizzare il client open source qtnx

sudo apt-get install qtnx

nxclient

il client di NoMachine (che ha introdotto la tecnologia ) è scaricabile dall’omonimo sito. Il client è scaricabile alla pagina:
http://www.nomachine.com/download-package.php?Prod_Id=3773
oppure

wget http://64.34.173.142/download/3.5.0/Linux/nxclient_3.5.0-7_i386.deb

sudo dpkg -i nxclient_3.5.0-7_i386.deb

FreeNX server in ubuntu 11.04

il ppa per  ubuntu 11.04 manca ma quello di lucid va altrettanto bene pertanto  aggiungere il repository ppa di freenx nel seguente modo.

sudo add-apt-repository ppa:freenx-team
sudo sed -i ‘s/natty/lucid/g’ /etc/apt/sources.list.d/freenx-team-ppa-natty.list

Quindi update e install

sudo apt-get update
sudo apt-get install freenx

quindi procedere all’installazione di nxsetup.sh come indicato per ubuntu 12.04

rirsorse:
https://help.ubuntu.com/community/FreeNX
https://help.ubuntu.com/community/NomachineNX

Remmina remote deskotp client

Remmina è  un client per desktop remoto in GTK+ che supporta diversi protocolli: RDP, VNC, NX, XDMCP e SSH. Remmina è un software open-source efficace con un interfaccia user-friendly che consente di gestire una molteplicità di connessioni.

Di seguito alcune schermate con la finestra principale e le opzioni utilizzabili che sono tutte quelle che servono.

remmina finestra principale

remmina finestra principale con l’elenco delle connessioni impostate e i plugins installati

Le opzioni per l’impostazione di una connessione rdp  verso windows o quando  si utilizza xrdp  come X window server minimale in ubuntu debian linux. E’ possibile impostare la risoluzione, selezonare la cartella da condividere in advanced si può impostare il suono, il tipo di sicurezza, condividere stampanti, qualità della connessione, ….

remmina-preference-i basic

remmina RDP preferences i Basic tab

remmina-preference-advanced

Remmina il tab advanced: qualità, suono, sicurezza, stampanti

Remmina VNC opzioni del basic tab

remmina-vnc

Remmina VNC i basic tab

Remmina SSH Connection

remmina-ssh

Remmina ssh opzioni

Remmina errore Connessione a Windows con RDP

Qualora si verifichino problemi nella connessione a sisteami Windows via RDP con remmina del tipo ad esempio

"Unable to connect to RDP server ....

remmina-rdp-unable

Abbiamo due possibili soluzioni:

1°)  potrebbe anche essere sufficiente la selezione  in Advanced -> Security della Modalita RDP

remmina rdp security

remmina rdp security

2) oppure nel caso di problema con la hostkey del computer remoto. Rimuovere il fingerprint  del computer remoto che è conservato nel file

/home/<username>/.freerdp

Per risolvere l’errore la soluzione più semplice consiste proprio nella cancellazione della riga con l’ip del computer al quale non si ha accesso. Salvare e quindi rieffettuare l’accesso. Verrà chiesto di confermare il nuovo certificato.  ( remmina : Unable to connect to RDP server ) . I dettagli di questo tipo di errore sono più espliciti quando si usa vinagre come evidenziato in questo post  vinagre : Error connecting to host

Risorse:

remmina : Unable to connect to RDP server

Per risolvere l’errore di mancata connessione a desktop remoto RDP  con remmina: Unable to connect to RDP server .

remmina-rdp-unable

Lanciare remmina da terminale e controllare il messaggio di errore.

Se il messaggio di errore e del tipo seguente

:~$ remmina
** (remmina:13847): WARNING **: Couldn't connect to accessibility bus: Failed

Potrebbe esserci  qualcosa che non va con la hostkey del computer remoto. Il fingerprint della hostkey del computer remoto può essere controllata aprendo il file

/home/<username>/.freerdp

Per risolvere l’errore la soluzione più semplice consiste nel cancellare la riga con l’ip del computer al quale non si ha accesso. Salvare e quindi rieffettuare l’accesso.

remmina-rdp-certificate
Verrà chiesto di confermare il nuovo certificato

Quando si verifica l’errore di mismatch hostkey avviando una connessione RDP l’errore si presentarà anche utilizzando gli altri usuali client per l’accesso remoto quali:  vinagre, grdesktop …

Nel caso di vinagre  i messaggi sono decisamente più espliciti come evidenziato in questo post  vinagre : Error connecting to host

 

Risorse:

 

 

vinagre : Error connecting to host

Per risolvere l’errore di mancata connessione a desktop remoto protocollo RDP con vinagre. Lanciare vinagre da terminale e controllare il messaggio di errore.

Se il messaggio di errore e del tipo seguente

:~$ vinagre

** (vinagre:13509): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-296G8Fgj3U: Connection refused
 connected to 192.168.1.107:3389
 The host key for 192.168.1.107 has changed
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!
 It is also possible that a host key has just been changed.
 The fingerprint for the host key sent by the remote host is
 4f:87:69:e1:93:13:44:71:71:7b:6d:20:64:05:9e:37:20:73:68
 Please contact your system administrator.
 Add correct host key in ~/.freerdp/known_hosts to get rid of this message.
 Host key for 192.168.1.107 has changed and you have requested strict checking.
 Host key verification failed.
 SSL_write: Failure in SSL library (protocol error?)
 Authentication failure, check credentials.
 If credentials are valid, the NTLMSSP implementation may be to blame.

C’è qualcosa che non va con la hostkey del computer remoto. Il fingerprint della hostkey del computer remoto, come indicato nel messaggio, può essere controllata aprendo il file

/home/<username>/.freerdp

Quasi certamente non corrisponderà con quella indicata nel messaggio di errore.  Se così per risolvere ci sono due possilità:

  • rimuovere la riga con l’ip del computer che non consente l’accesso remoto. E rieffettuare l’accesso.
    vinagre-rdp-hostkey-fingerprint
    Verrà chiesto di confermare il nuovo certificato
  • se si è in rete locale e non ci sono problemi con l’identità dei computers è anche possibile sostiture direttamente la hostkey con quella indicata nel primo messaggio.

Altro possibile warning

*
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: CERTIFICATE NAME MISMATCH! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The hostname used for this connection (192.168.1.107)
does not match the name given in the certificate:
PCH-W7
A valid certificate for the wrong name should NOT be trusted!

.

.

Risorse: