Home > Linux, Server, Ubuntu > ssh tunnel per accedere a servizi http, postgresql, samba in remoto

ssh tunnel per accedere a servizi http, postgresql, samba in remoto

Con i tunnels ssh è possibile trasportare sessioni TCP all’interno di connessioni criptate.  In questo modo possiamo mettere in sicurezza comunicazioni che si svolgono in chiaro oppure raggiungere computers e/o servizi che sono posti dietro firewalls. In questo primo posti i comandi per generare tunnels per accedere in sicurezza ai servizi http, postgresq, samba su computers remoti e i comandi per visualizzare e chiudere i processi ssh attivi.

Comininciamo con l’ elencare le connessioni “ssh” attive.
Per lanciare taluni comandi come root verrà utilizzato il comando sudo tipico di Ubuntu si può optare anche per passare a root con  sudo su.

sudo ps -afx | grep [s]sh     # preferibile

o

sudo netstat -anpt | grep -E "ssh"

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

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

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

sudo killall ssh

Tunnel ssh per accedere a un web server – http  port  80

1) Il computer remoto ospita un web server ma il suo firewall blocca la porta 80 la porta 22 è accessibile.
Effettuiamo una connessione ssh è utilizziamo un local port forwarding ( -L )  per navigare il web server del computer remoto.

ssh -fNgq root@192.168.1.9 -L 8080:localhost:80

-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
-v verbose

quindi facciamo puntare il browser all’indirizzo 127.0.0.1:8080

2) Il firewall della nostra rete impedisce l’accesso a un sito specifico (es. http://www.inter.it) è disponibile tuttavia un computer raggiungibile via ssh che non ha questa limitazione. Possiamo utilizzare quest’ultimo computer (agirà da “gate”) per raggiungere il web server bloccato.

ssh -nFg  root@192.168.1.9  -L 8081:inter.it:80

o

 ssh -fN root@192.168.1.9 -L 8081:79.125.120.241:80   # host remoto specificato con IP

sempre -L (Local port forwarding) :  – L local-port-listen:remote-host:remote-port    192.168.1.9 ( gate )

Se il sito web utilizza rewriting potrebbero esserci poblemi nel visualizzare correttamente la pagina.

Tunnel ssh  per utilizzare un server postgresql remoto 

1)  utilizzare  postgresql in sicurezza utilizzando un tunnel ssh
[ local machine]    ——–>  [ 182.193.135.162 ]

ssh -fNg  pluto@182.193.135.162  -L54321:localhost:5432 
psql  -p 54321 postgres postgres

2) utilizzare  il server postgresql 10.0.1.49 passando per  gate
[local machine] ——–> [182.193.135.165 – gate] ———> [10.0.1.49: server postgresql- remote LAN]

ssh -fNg    -L54321:10.0.1.149:5432 root5@182.193.135.162 
psql -p 54321 -h 127.0.0.1 -U postgres

in pgadmin editiamo host= 127.0.0.1 e port= 54321

altro post  Tunnel via ssh per gestire il server postgresql con pgAdmin

Tunnel ssh per protocollo samba  – samba(smb)  porte 139 o 445

1)  creare un tunnel ssh per raggiungere dal pc ubuntu il serverr windows 2008 attraverso il gate centos
[ local-machine(ubuntu 12.04) ]  ——>  [ 28.93.35.65 gate (centos) ] ———>   [10.0.1.103: windows server 2008 ]

Prima di aprire il tunnel ssh fermare il service samba attivo nel pc locale con ubuntu

sudo service smbd  stop 

Dettagli su samba sono disponibili in Samba in debian squeeze e ubuntu linux via terminale.

Per aprire il tunnel sarebbe utile conoscere la porta. Comunque poichè in genere si tratta della porte 445 o 139  non resca che provare prima 445 e poi 139 .Apriamo il “ssh tunnel for samba( Local port forwarding )”

ssh -fNgq -L 139:10.0.1.103:139  user-centos@28.93.35.65

oppure

ssh -fNgq -L 445:10.0.1.103:445  user-centos@28.93.35.65

-L port-local:host-remote:port-remote  (-L  Local port forwarding )

Ora possiamo usare  nautilus o pcmanfs per gestire il  smb share  o smbclient oppure effettuare il  mount con smbmount.

Il file manager accederà alle cartelle del server windows remoto con un indirizzo di questo tipo

smb://127.0.0.1/dir-share-server

per utilizzare smbclient usiamo il comando:

smbclient --user=user-windows2008  //127.0.0.1/WWW

se tutto ok questo è il prompt atteso

 
:~$ smbclient --user=masterzyn //127.0.0.1/WWWe
Enter masterzyn's password: 
Domain=[HOSTxx-172-001] OS=[Windows Server 2008 R2 Standard 7601 Service Pack 1] Server=[Windows Server 2008 R2 Standard 6.1]
smb: \>

e per visualizzare le cartelle del server windows 2008 provare con:

 
smb: \> ls

possiamo anche montare le cartelle remote con smbmount
creiamo un mount point (ex. /mnt/smb3)  and then we have to use smbmount to do the mounting

sudo mkdir /mnt/smb3

sudo smbmount //127.0.0.1/WWW /mnt/smb3   -o username=user-window2008

Terminare connessione ssh

Elencare le connessioni ssh attive con pgrep

 
sudo pgrep -lf ssh 
807 /usr/sbin/sshd -D
1848 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/startlubuntu
1857 /usr/bin/gnome-keyring-daemon --start --components=ssh
20895 ssh -fNgq -L 54320:localhost:5432 root@28.93.35.65
22493 ssh -fNgq -C -L 54321:localhost:5432 root@28.93.35.66

oppure con netstat

 
sudo netstat -anpl | grep  [s]sh
[sudo] password for maurizio: 
tcp        0      0 0.0.0.0:54320           0.0.0.0:*               LISTEN      20895/ssh       
tcp        0      0 0.0.0.0:54321           0.0.0.0:*               LISTEN      20900/ssh       
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      807/sshd        
tcp        0      0 127.0.0.1:54321         127.0.0.1:55211         ESTABLISHED 20900/ssh       
tcp        0      0 127.0.0.1:54320         127.0.0.1:49669         ESTABLISHED 20895/ssh       
tcp        0      0 192.168.1.6:57730     182.93.35.161:22        ESTABLISHED 20895/ssh       
tcp        0      0 127.0.0.1:54320         127.0.0.1:49667         ESTABLISHED 20895/ssh       
tcp        0      0 127.0.0.1:54320         127.0.0.1:49668         ESTABLISHED 20895/ssh       
tcp        0      0 127.0.0.1:54321         127.0.0.1:55210         ESTABLISHED 20900/ssh       
tcp        0      0 127.0.0.1:54321         127.0.0.1:55206         ESTABLISHED 20900/ssh       
tcp        0      0 192.168.1.6:58023     182.93.35.162:22        ESTABLISHED 20900/ssh       
tcp6       0      0 :::54320                :::*                    LISTEN      20895/ssh       
tcp6       0      0 :::54321                :::*                    LISTEN      20900/ssh       
tcp6       0      0 :::22                   :::*                    LISTEN      807/sshd        
unix  2      [ ACC ]     STREAM     LISTENING     11001    1848/ssh-agent      /tmp/ssh-r7iPA7SsOYBY/agent.1811
unix  2      [ ACC ]     STREAM     LISTENING     11889    1857/gnome-keyring- /run/user/maurizio/keyring-Y

quindi per terminare con kill il processo ssh sulla porta 54321 ID 20900

sudo kill 20900

Risorse:


		
Advertisements
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: