Traballando con SSH.

enero 29, 2009 at 9:10 pm 3 comentarios

function copiarPortapapeisGM_BoxValuesSession() { try { netscape.security.PrivilegeManager.enablePrivilege(“UniversalXPConnect”);const gClipboardHelper = Components.classes[“@mozilla.org/widget/clipboardhelper;1”].getService(Components.interfaces.nsIClipboardHelper);gClipboardHelper.copyString( document.getElementById(“GM_BoxValuesSession”).innerHTML );}catch(e){}}function pecharGM_BoxValuesSession() { document.getElementById(‘GM_BoxValuesSession’).parentNode.style.display = ‘none’;}

No mundo actual é bastante habitual encontrarte fora da oficina ou da casa pero sen embargo sigues a necesitar unha conexión a rede para poder realizar o teu traballo, ou simplemente por gusto. Conectarse a unha rede pública que descoñecemos e que non esta asegurada sempre trae perigos potenciais, ataques, sniffers,… para elo é aconsellable ter un sistema actualizado, con un firewall instalado, un antivirus actualizado que pasaremos cada poucos dias, un antispyware, non esta demais usar firefox con NoScript (este uso é aconsellable en todos os ámbitos), etc, etc…

Pero un problema ven cando temos que insertar datos sensibles na rede, como damos por seguro que a rede a que estamos conectados non é segura non debemos arriesgar a que nos rouben a nosa información persoal. ¿Que facer logo?, ok, unha forma de minimizar ou eliminar esta problematica e traballando via SSH. Neste caso, dou por suposto que no noso fogar ou oficina temos outro ordenador con Ubuntu 8.04 instalado (por exemplo).

Ok, pois ben o primerio que hai que facer é instalar no equipo da ofinica (que exercerá a tarefa de servidor) o OpenSSH-Server esta instalación como sempre podes facela por terminal ou vis Synaptic. Tamén instalaremos un openssh-client para facer probas contra o servidor ou por que este equipo pode ser cliente de outro servidor SSH, esta instalación tamén se pode facer via terminal ou via Synaptic.

Unha vez instalado o servidor-ssh eo cliente-ssh podemos comprobar o seu funcionamento facendo uso do terminal:

$ ssh localhost ou ssh 127.0.0.1

A primeira vez que nos conectamos ao servidor vai tardar un pouco dado que vai rexistrar o noso equipo dentro do ficherio know_hosts.

Vaiche sair unha mensaxe come esta:

The authenticity of host ‘localhost (127.0.0.1)’ can’t be established. RSA key fingerprint is XX:06:XX:XX:XX:7c:XX:75:XX:42:XX:XX:3d:XX:87:XX. Are you sure you want to continue connecting (yes/no)?

A cal responderemos ‘yes’ (aquí é onde se produce o rexistro) en caso de responder ‘no’ a comunicación cortariase.

Como ves, vaiche pedir o contrasinal de usuario.

user1@localhost’s password:

Introducimos o contrasinal e ofrecenos a seguinte información:

Linux PChouse 2.6.24-23-generic #

1 SMP Thu Nov 27 18:44:42 UTC 2008 i686 The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ Last login: Tue Jan 27 11:18:25 2009 from 192.168.1.33

user1@Linux PChouse:~$

Vale e xa estariamos conectados via ssh, claro esto só é para probar que todo funciona ben.

No momento de instalar o servidor SSH dentro de /etc/ssh/ aparece un ficheiro denominado sshd_config, este ficheiro contén a configuración de dito servidor o cal retocaremos un pouco para mellorar a seguridade.

Podemos para ou lanzar o demonio do servidor ao noso gusto para elo debemos executar:

$ /etc/init.d/ssh stop —> Para o demonio

$ /etc/init.d/ssh start —> Lanza o demonio

$ /etc/init.d/ssh restart —> Reinicia o demonio

Retocando sshd_config: (debemos ter o servidor parado)

Engadimos a seguinte liña:

AllowUsers user1 user2 … (aquí limitase os usuarios que poden acceder ao servidor)

Cambiamos:

PermitRootLogin yes -> no

LoginGraceTime 120 -> 40

Fixaremonos que a liña X11Forwarding teña o valor yes para poder executar dende o cliente aplicacións gráficas.

Por último cambiamos o valor do porto de conexión que trae por defecto: Port 22 -> 1321 (por exemplo).

Saimos e gardamos os cambios, e iniciamos de novo o servidor. Ok, agora reiniciamos o servidor. Ollo date conta que cambiaches entre outras cousas o porto por defecto de conexión entón temos duas alternativas:

1- Facer a conexión facendo uso do parametro ‘-p’ da seguinte forma:

$ ssh -p1321 user1@ipdoequipo

ou

$ ssh -p1321 user1@nomedoequipo

2- Modificar o valor por defecto do openssh-client dentro do seu ficheiro de configuración ssh_config situado en /etc/ssh/ :

abrimos o ficheiro_

sudo gedit /etc/ssh/sshd_config

e descomentamos a liña Port cambiando o seu valor:

#Port 22 -> Port 1321 gardamos os cambios.

Ben, agora xa podes acceder sen usar o parametro -p:

$ ssh user1@ipdoequipo

ou

$ ssh user1@nomedoequipo

Vale, agora collemos o equipo portátil que será o cliente do equipo da casa ou oficina; tamén dou por suposto que temos instalado un sistema Gnu/Linux como pode ser un Ubuntu 8.10 (por exemplo) se o que tes instalado é un sistema Windows podes facer isto facendo uso de Putty.

No equipo cliente instalamos (o normal e que xa este instalado) o cliente SSH openssh-client, o cal podes instalar tamén facendo uso do terminal ou do Synaptic. Unha vez instalado podes acceder ao equipo servidor de forma gráfica ou mediante terminal.

Facendo uso do terminal escribes:

$ ssh -p1321 user1@ipdoequiposervidor

ou

$ ssh -p1321 user1@nomedoequiposervidor

Ou facendo uso do entorno gráfico:

Lugares -> Conectar co servidor : escolles Servidor-> SSH e insertas nos cadros correspondentes a ip (ou nome) do servidor, o porto de acceso, o directorio de traballo, eo nome do usuario.

De igual forma que fixemos co openssh-client instaldo no servidor podemos modificar a variable ‘Port‘ do ficheiro ssh_config.

Moi ben! Agora mesmo xa somos capaces de acceder dende o noso equipo portátil ao noso equipo fixo facendo uso de SSH mediante un nome de usuario e un contrasinal.

Pero a isto podemos facílmente engadirlle un grado máis de seguridade, para elo facemos uso dun par de claves -Clave pública/Clave privada– isto tamén o podemos facer por dous medios distintos ou usando o omnipotente terminal ou de forma gráfica en:

Aplicacións->Accesorios->Contrasinal de clave e cifrado de esta forma inicializamos o Seahorse que non é outra cousa que un administrador de claves de cifrado.

Neste caso faremos uso do terminal para ver as ordes que debemos executar, así para crear ambalas duas claves usamos o comando ssh-keygen:

$ ssh-keygen -t rsa

Seguidamene indicarache que esta creando as claves RSA públicas e privadas. Na pregunta que che fai sobre en que ficheiro queres almacenar as claves pulsamos ‘intro’ deixando que a almacen por defecto en /home/usuario/.ssh/id_rsa.

Generating public/private rsa key pair.

Enter file in which to save the key (/home/user1/.ssh/id_rsa):

Logo indicanos que se creou o directorio /.ssh, e pidenos un contrasinal para a validación de ditas claves. Recorda que canto máis seguro sexa o contrasinal mellor, para elo e bo que leve letras maisculas,minusculas,números,e simbolos.

Created directory ‘/home/user1/.ssh’.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Moi ben pois xa temos as claves xeneradas.

Agora toca copiar a nosa clave pública (id_rsa.pub) no servidor, para elo faise uso do comando ssh-copy-id, de tal forma que estando no directorio do usuario dentro de /home podemos facer:

$ ls -a (para que nos liste todos os directorios incluidos os ocultos)

$ cd .ssh

$ ls (vemos as claves que se crearon)

$ ssh-copy-id id_rsa..pub user1@ipdoequipo:~/.ssh/authorized_keys

ou ben

$ scp ~/.ssh/id_rsa.pub user1@ipdoequipo:~/.ssh/authorized_keys

Vaiche pedir o contrasinal de paso para realizar dita copia. Ben, unha vez que xa esta a clave pública no servidor debemos retocar por última vez unha liña dentro do ficheiro sshd_config para indicarlle que dende este momento todas as conexións se fan facendo uso da clave pública, polo tanto editamos a liña onde aparece:

#PasswordAuthentication yes —> PasswordAuthentication no

Finito!! agora dende o cliente podemos acceder ao servidor dunha forma máis segura dado que temos un nome de usuario, unha clave pública do noso equipo, e un contrasinal de paso, polo que aumentamos como se indicou antes a nosa seguridade na conexión.

Se queres executar aplicacións gráficas do servidor dende o cliente podes facer o seguinte:

ssh -X user1@ipdoequiposervidor

logo unha vez dentro do equipo servidor podes lanzar aplicacións escribindo na terminal o seu nome por exemplo:

user1@Linux Pchouse:~$ firefox

user1@Linux Pchouse:~$ Gimp

user1@Linux Pchouse:~$ nautilus

Deixo tres enlaces para seguir ollando cousas sobre o tema:

Guia Ubuntu

Tecnoloxiaxa

Guia RedHat

Entry filed under: Administrar Sistemas, Internet, Redes, Seguridade. Tags: .

A graphical SSH tunnel manager for Linux. Eee-Control

3 comentarios

  • 1. Oscar  |  enero 29, 2009 a las 11:15 pm

    Eiii tes unhaa pequena errata, na parte final, cando fas:

    $ ssh-copy-id id_rsa..pub user1@ipdoequipo:~/.ssh/authorized_keys

    ou ben

    $ scp ~/.ssh/id_rsa.pub user1@ipdoequipo:~/.ssh/authorized_keys

    Xa eiquí e a partir de eiquí coma antes cambiaches o porto do servidor ssh, terás que usalo porto, se non non conectará🙂

    se usas no cliente ssh é -p porto con minúsculo
    se usas no cliente scp é -P porto con maiúsculo

    Hai que ter moi en conta este pequeno troco pq as veces non nos damos de conta (tenme pasado moitas veces) e metemos -p cando era -P en scp por exemplo e non conecta nunca….

  • 2. toniocastro  |  enero 30, 2009 a las 6:37 am

    Xa, pero se vario o porto tamen no openssh-client do cliente-portatil modificando a variable -Port- do ssh_config xa non fai falla, que foi o que fixen.

    “De igual forma que fixemos co openssh-client instaldo no servidor podemos modificar a variable ‘Port‘ do ficheiro ssh_config.”

  • 3. Oscar Casal Sanchez  |  enero 30, 2009 a las 1:32 pm

    É certo jeje, inda que eu non o fago nunca, un usuario cliente pode usar moito ese porto e outro o por defecto ó conectarse a unha máquina que corre no 22, así q prefiro que cada un cree o seu alias co parámetro do porto


Calendario

enero 2009
L M X J V S D
« Dic   Feb »
 1234
567891011
12131415161718
19202122232425
262728293031  

Suscríbete as miñas novas

Powered by FeedBurner

Firefox

Android