Diferencia entre revisiones de «SSH»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 125: Línea 125:
         LocalForward 22139 192.168.0.8:139
         LocalForward 22139 192.168.0.8:139
         LocalForward 22110 192.168.0.5:110
         LocalForward 22110 192.168.0.5:110
 
  Host http
  Host http
  HostName localhost # després de la connexió és possible accedir directament al servidor http per ssh
  HostName localhost # després de la connexió és possible accedir directament al servidor http per ssh

Revisión del 13:27 10 ene 2013

SSH (Secure SHell) És un protocol per a la transferència d'arxius i gestió de maquines remotes amb connexió segura.

En base a aquest protocol hi han diferents programes per a la realitzar aquest tipus de tasques.

El que anem a estudiar és OpenSSH

Instal·lació i configuració d' OpenSSH

$ sudo apt-get install ssh
  • Instal·la un paquet buit que fa referència a openssh-server i openssh-client
  • Es creen unes claus SSH2 RSA i DSA per identificar el servidor.
  • Les claus es guarden a la carpeta /etc/ssh
$ cd /etc/ssh
$ ls *key*
ssh_host_dsa_key  ssh_host_dsa_key.pub  ssh_host_rsa_key  ssh_host_rsa_key.pub

Per defecte, té reservat el port 22 TCP i UPD, encara que el habitual és el TCP.

El fitxer de configuració del servidor és /etc/ssh/sshd_config

Ús bàsic

La sintaxi de SSH segueix un esquema similar al del correu electrònic:

usuari@nom_maquina_remota

Els següents són exemples de connexió amb SSH a una màquina remota:

$ ssh lliurex@www.upv.edu
$ ssh lliurex@192.168.1.1
$ ssh 192.168.1.1

De vegades necessitem que quan fem una connexió remota tenim que carregar aplicacions amb entorn gràfic i ho faríem:

$ ssh -X [usuari de la maquina de destí]@[IP o Hostmane de la maquina de destí]

El -X sols funciona si el servidor té interficie gràfica.

Connexió sense contrasenya

La comanda ssh-keygen s'encarrega de la creació dels parells de claus pública/privada. Per defecte, els fitxers depenent del protocol escollit:

   $HOME/.ssh/identity (clau privada) i $HOME/.ssh/identity.pub (clau pública)
   $HOME/.ssh/id_dsa (clau privada) i $HOME/.ssh/id_dsa.pub (clau pública) si el protocol escollit es DSA.
   $HOME/.ssh/id_rsa (clau privada) i $HOME/.ssh/id_rsa.pub (clau pública) si el protocol escollit es RSA. 
Les comandes exactes a utilitzar per generar les claus en cadascun dels casos anteriors són: 
$ ssh-keygen -t dsa 
$ ssh-keygen -t rsa 
El nom dels fitxers per defecte es pot canviar utilitzant el paràmetre -f. Durant la creació de la clau se'ns preguntarà per la possibilitat de protegir l'ús de la clau amb contrasenya. Si la nostra intenció és automatitzar tasques podem anular aquest pas si no introduïm cap contrasenya (Enter). 
$ ssh-keygen -t rsa -b 2048

Els arxius són .ssh/id_rsa i .ssh/id_rsa.pub

El id_rsa.pub cal afegir-lo al .ssh/authorized_keys del servidor. Es pot fer amb scp.

Com que al generar les claus no hem ficat contrasenya, es connectarà directament. Si no, ens demana la de desencriptar la clau privada.

Per a eliminar un client ssh-keygen -R IP_client

Però crear la clau privada sense contrasenya no és molt recomanable. Cal fer que el sistema la recorde una vegada per sessió amb el ssh-agent.

$ ssh-add -l 
$ ssh-add ~/.ssh/id_dsa

Amb la autentificació a nivell de usuari pot ser insegura. Es fa una autentificació a nivell de màquina. Quant connectem per primera vegada ens diu si volem guardar el fingerprint del servidor.

Es guarda en .ssh/know_hosts

scp

Funciona de forma anàloga a la comanda cp, però utilitza prefixos de conexió a màquina remota:

usuari@host:/PATH_AL_FITXER 

Per exemple:

$ scp $HOME/file1 jose@sga2.upv.es:$HOME

Copia el fitxer file1 de la carpeta home local a la carpeta home del servidor sga2.upv.es.

SSH backdoor o remote Forwarding

Permet accedir via SSH a una màquina darrera d'un firewall.

Si la màquina té accés cap a l'exterior aleshores es possible saltar-se el tallafocs si tenim accés a la màquina.

Si existeix un tallafocs o necessites una certa privacitat en les connexions a Internet.

$ ssh -D 7070 jo@macasa.com

Redirecciona la connexió al port 7070.

Cal que el servidor tinga en /etc/ssh/sshd_config:

AllowTcpForwarding yes
GatewayPorts yes
TCPKeepAlive yes

En el firefox es fica com a proxy sols en SOCKS v5 localhost:7070 i a funcionar!

Sshproxy.png

Accedir a servicis darrere d'un tallafocs

Com es pot vore, el tallafocs sols deixa el port 22 per a SSH.

En este cas, el tallafocs sols deixa passar el port 22.

Necessitem utilitzar el Samba, la web i el correu de la intranet.

El servidor SSH té com a IP pública 66.35.250.203

Cal configurar el portàtil per a tunelitzar el tràfic a través del servidor.

~/.ssh/config (amb permissos 600)

## Linux Laptop .ssh/config ##
Host work
HostName 66.35.250.203
       User lliurex # L'usuari és lliurex i el nom de la connexió es diu work. Per tant es pot fer $ ssh work
       LocalForward 20000 192.168.0.66:80
       LocalForward 22000 192.168.0.66:22
       LocalForward 22139 192.168.0.8:139
       LocalForward 22110 192.168.0.5:110

Host http
HostName localhost # després de la connexió és possible accedir directament al servidor http per ssh
       User donkey
       Port 22000
       HostKeyAlias localhosthttp

Aquesta sería la manera permanent de fer-ho, peró es poden fer coses en una sola comanda:

$ ssh -L 4000:destinacio:80 user@intermediari

(font)