Diferencia entre revisiones de «SSH»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(No-IP)
(Clientes DNS)
Línea 64: Línea 64:
  
 
Aquí vamos a trabajar con dos servicios distintos y gratuitos: [http://www.no-ip.com No-IP.com] y [http://www.dyndns.com DynDNS.com]
 
Aquí vamos a trabajar con dos servicios distintos y gratuitos: [http://www.no-ip.com No-IP.com] y [http://www.dyndns.com DynDNS.com]
 +
 +
----
  
 
=== No-IP ===
 
=== No-IP ===

Revisión del 17:36 13 oct 2011

SSH (Secure SHell, en español: intérprete de órdenes seguro) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red, ya sea local o pública. Permite manejar por completo el ordenador mediante un intérprete de comandos, y también puede redirigir el tráfico de aplicaciones gráficas si tenemos un Servidor X (en sistemas tipo Unix y Windows) corriendo.

Seguridad

SSH funciona de manera similar a Telnet con la diferencia de que aquí la información viaja cifrada, lo cual hace inútil la intercepción de un paquete al ser éste ilegible.

Además de conectarnos a otros dispositivos para manejarlos remotamente, SSH también nos permite crear túneles seguros a través de los cuales podemos redirigir tráfico, o enviar y recibir ficheros de forma totalmente segura, fiable y simple gracias a su gestión de claves RSA, como si se tratase de un servidor FTP.

Por lo tanto, podemos concluir que la seguridad está presente en todo momento.

Tunneling

Esquema Tunneling

Por lo general, los protocolos envían sus datos «en claro» (sin encriptar), por lo que cualquier persona con acceso físico a nuestra red y un sniffer (programa de captura de tramas de red) es capaz de interceptar nuestros paquetes y verlos libremente. Si tenemos información sensible en circulación, la seguridad estará seriamente comprometida, obviando usuarios y contraseñas como en los casos de Telnet o

El tunneling nos permitirá salvar este problema fácilmente sin dejar de usar los protocolos que necesitemos. Esta técnica consiste en abrir conexiones entre dos máquinas por medio de un protocolo seguro, como puede ser el SSH, a través de las cuales realizaremos las transferencias inseguras, que pasarán de este modo a ser seguras.

Aplicaciones SSH

Resumiendo, las principales aplicaciones del SSH que en esta página se van a explicar son:

  • Redirigir el tráfico de algunos puertos, por ejemplo de un cliente de correo (Thunderbird). Es decir, encriptar nuestras conexiones para evitar miradas «ajenas» gracias a que creamos un túnel seguro entre el puerto del servidor de correo (ej. 110) y uno local (ej. 1110).
  • Saltarse un cortafuegos.
  • Enviar y descargar archivos de manera segura.
  • Acceso total a una computadora remota por Terminal.

Todo lo vamos a hacer desde el punto de vista de una distribución Linux, en nuestro caso y por ser la más extendida a nivel de usuario, Ubuntu.

Instalando y Configurando SSH

Abrimos un terminal de Ubuntu y escribimos:

 sudo aptitude install openssh-server

Seguidamente, pasamos a configurar nuestro servidor ya instalado. Para ello usaremos el editor de textos nano, aunque también podríamos usar gedit o vim:

 sudo nano /etc/ssh/sshd_config

Claves para aumentar la seguridad de nuestro servidor:

  • Cambiar el puerto estándar de conexión (22) a otro cualquiera para evitar ataques es una buena forma de permanecer invisibles a los molestos bots que, a pesar de no representar una amenaza sin tener nuestra contraseña de acceso, es mejor evitar. Para ello, en la quinta línea, cambiamos el puerto a, por ejemplo:
  Port 443 (Estándar HTTPS)
  • No permitir el logueo como Root es algo básico y esencial para la seguridad de nuestro sistema. Así que buscamos la línea siguiente y cambiamos el valor de "yes" a "no":
  PermitRootLogin no
  • Imponer un número máximo de intentos fallidos de autentificación es una buena estrategia, sobre todo si nuestro servidor está escuchando en una red pública. De ésta forma podremos evitar que un posible atacante intente averiguar una contraseña por un método de fuerza bruta. En este caso, crearemos una nueva instrucción dentro del archivo, de la siguiente forma:
  MaxAuthTries 2 (si fallamos dos veces la contraseña, el servidor nos desconecta y hay que volver a establecer la conexión)
  • Definir exactamente quién puede o no acceder a nuestro servidor puede ser útil especialmente si trabajamos a nivel local, aunque es extensible a la red externa. Para ello, basta con configurar los archivos hosts.allow (permitir) y hosts.deny (denegar) añadiendo las IP's que nos interese administrar (un buen paranoico, denegaría todas las conexiones y configuraría solo las que fueran absolutamente necesarias):
 sudo nano /etc/hosts.allow
 sudo nano /etc/hosts.deny

Arranque y parada del servidor

  • Arrancar el servidor SSH:
 sudo service ssh start
  • Detener el servicio:
 sudo service ssh stop
  • Reiniciar el servicio:
 sudo service ssh restart

Clientes DNS

Si tenemos intención de usar nuestro servidor SSH externamente a nuestra red local, necesitaremos un cliente DNS que nos permita olvidar nuestra dirección IP; más aún en el caso de ser dinámica, y sustituirla por un nombre de dominio.

Aquí vamos a trabajar con dos servicios distintos y gratuitos: No-IP.com y DynDNS.com


No-IP

Nos registramos en su página web, y cuando hayamos accedido al menú principal, clickeamos en Add a Host.

Seguidamente, escribiremos el nombre que le queramos dar al host, que irá seguido de un subdominio obligatorio que nos impone no-ip, aunque podremos elegir entre varios.

El «Host Type» ha de ser siempre «DNS Host (A)» No debemos rellenar nada más, así que pulsamos en Create Host.

Una vez hecho esto, instalaremos el programa cliente en nuestro ordenador, que mandará periódicamente a nuestro dominio de No-IP la dirección IP que tengamos en ese momento.

 sudo apt-get install noip2

Durante la instalación, el programa nos hará preguntas para configurarse. No obstante, podremos reconfigurarlo sin problemas si algo ha ido mal con la siguiente instrucción:

 sudo noip2 -C

Enlaces externos