|
Seguridad: Cómo instalar y configuar SSH en Linux Ubuntu con OpenSSH
Os explicamos cómo instalar y configurar un servidor SSH en GNU Linux Ubuntu 9.10 Desktop mediante OpenSSH de OpenBSD. Explicamos qué es SSH y para qué sirve. Mostramos paso a paso las tareas que se pueden realizar con SSH: transferencia de ficheros, ejecución de comandos de forma remota, control remoto, FTP, etc.
Definición de SSH (Secure Shell)SSH (Secure SHell ó intérprete de órdenes segura) 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. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo. En resumen, permite ejecutar comandos del shell de un equipo remoto desde otro como si estuviésemos sentados en el equipo remoto. Correctamente configurado el equipo remoto también permite abrir ventanas de GNU Linux en el modo gráfico de Windows. Además de la conexión a otras máquinas, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a las máquinas y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH. SSH funciona de forma similar a como se hace con telnet. La diferencia principal es que SSH usa técnicas de cifrado que hacen que la información que viaja por el medio de comunicación vaya de manera no legible y ninguna tercera persona pueda descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la información entre destinos. En resumen, SSH es un protocolo utilizado para control remoto de otros equipos de la red y para transferencia cifrada de ficheros.
Definición de OpenSSH ¿qué es? ¿para qué sirve?OpenSSH es una versión gratuita (freeware) del paquete de herramientas de comunicación segura del protocolo SSH/SecSH para redes. OpenSSH, al contrario que otros programas para el protocolo SSH (telnet, rlogin, ftp), cifra todo el tráfico (incluidas las contraseñas). Además, OpenSSH ofrece amplias posibilidades para la creación de túneles seguros, aparte de una variedad de métodos de autenticación. OpenSSH es un proyecto desarrollado principalmente por el Proyecto OpenBSD, y su primera integración en un sistema operativo fue en OpenBSD 2.6. Estos programas se desarrollan usando código de unos 10 países distintos. Este código es de libre utilización bajo la licencia BSD. OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten realizar comunicaciones cifradas a través de una red, usando el protocolo SSH. Fue creado como una alternativa libre y abierta al programa Secure Shell, que es software propietario. El proyecto está liderado por Theo de Raadt OpenSSH incluye las siguientes herramientas:
Instalación de OpenSSH en GNU Linux Ubuntu Desktop 9.10Instalación del sistema operativo GNU Linux UbuntuEn primer lugar necesitaremos, lógicamente, un equipo con el sistema operativo GNU Linux Ubuntu 9.10 Desktop, para instalar este sistema operativo se pueden seguir las instrucciones de alguno de los siguientes manuales:
Descarga e instalación de OpenSSH en GNU Linux UbuntuPara descargar e instalar OpenSSH en GNU Linux Ubuntu abrieremos una ventana de terminal desde el menú "Aplicaciones" - "Accesorios" - "Terminal": Antes de continuar hay que mencionar que para instalar OpenSSH por el método que vamos a explicar es necesaria una conexión a Internet. Escribiremos el siguiente comando GNU Linux:
Si la instalación de OpenSSH ha sido correcta se habrá iniciado el servicio sshd, para ver su estado podemos ejecutar el siguiente comando:
Si está detenido podemos iniciarlo ejecutando:
Configuración de OpenSSHPara dar acceso a los usuarios que deseemos mediante SSH, editaremos el fichero sshd_config, ubicado en /etc/ssh/. Para ello editaremos el fichero con vi ó con nano, ejecutaremos el comando: sudo nano /etc/ssh/sshd_config Añadiremos la siguiente línea para permitir el acceso mediante SSH al usuario "alonso":
Si queremos permitir el acceso mediante SSH al superusuario root añadiremos la siguiente línea a este fichero:
Aunque esto no es muy recomendable por cuestiones de seguridad. Para indicar con qué interfaz de red se establecerá la conexión (en el caso de que tengamos varias interfaces de red con varias IPs en nuestro servidor de Linux Ubuntu) añadiremos la línea:
También podremos cambiar el puerto por defecto para SSH (es recomendable por seguridad), que es el 22, añadiendo (o modificando si existe) la línea:
Ver fichero ssh_config original trans instalar OpenSSH. Para que se apliquen los cambios reiniciaremos el servicio de SSH con el comando:
Configuración del sistema Linux para permitir accesos externos mediante SSHEn GNU Linux Ubuntu 9.10 Desktop, tras la instalación de OpenSSH, ya habrá acceso externo al equipo, por ejemplo usando PuTTY. En el caso en que esté activo el cortafuegos (firewall) de GNU Linux (netfilter), bien porque se haya instalado y activado desde Firestarter o bien porque se haya activado desde iptables (o cualquier otro) deberemos abrir el puerto 22 (el estándar para SSH). Si disponemos de iptables ejecutaremos el siguiente comando para abrir el puerto 22 y permitir conexiones externas mediante SSH:
Si disponemos de Firestarter podremos añadir la regla en el modo gráfico, para ello accederemos al menú "Sistema" - "Administración" y ejecutaremos "Firestarter", en la pestaña "Normativa" pulsaremos "Permitir servicio - Puerto - Para" y en el botón "+" para añadir una nueva regla:
Introduciremos los datos anteriores y pulsaremos "Añadir": Pulsaremos el botón de aplicar los cambios para que la regla sea aplicada.
Tareas o acciones que se pueden realizar utilizando SSH, para qué sirve OpenSSHEjecución de comandos por consola desde otro equipo mediante PuTTYMediante PuTTY, un cliente SSH gratuito, podremos acceder remotamente al equipo con OpenSSH y GNU Linux, para ello mediante un cliente que admita SSH como PuTTY, descargando PuTTY (es gratuito) desde su propia web:
Y ejecutando el fichero descargado putty.exe, en "Host Name (or IP address)" introduciremos la IP del equipo con GNU Linux y OpenSSH, en "Port" introducimos "22" y pulsamos en "Open": Si tenemos correctamente iniciado OpenSSH en GNU Linux, PuTTY nos mostrará un aviso como el siguiente antes de continuar, pulsaremos "Sí":
Nos pedirá nombre de usuario (login) y contraseña (password), introduciremos el usuario y la contraseña de GNU Linux que utilizamos para iniciar sesión y si todo es correcto PuTTY nos mostrará algo así:
De esta forma ya podremos ejecutar cualquier comando desde un equipo remoto (con cualquier sistema operativo, en nuestro caso Windows XP) en el equipo GNU Linux con OpenSSH. Por ejemplo podremos instalar nuevo software ejecutando apt-get install o ver información del equipo con uname -a: Abrir ventanas del modo gráfico de Linux en Windows con XmingEn el siguiente artículo del Proyecto AjpdSoft explicamos cómo mostrar ventanas del modo gráfico de GNU Linux (X Window) en un escritorio Microsoft Windows. Os explicamos cómo utilizar el servidor X Window para Microsoft Windows Xming. Este servidor se conecta a GNU Linux mediante el protocolo SSH, por lo que utilizaremos el cliente SSH PuTTY como puente entre Xming y GNU Linux: Servidor X de GNU Linux para Windows mediante PuTTY y Xming También podremos hacerlo con Cygwin, como explica el siguiente artículo: Conexión de Windows con Linux mediante Putty y Cygwin Transferencia cifrada de ficheros entre Windows y Linux mediante PSCP (PuTTY Secure Copy client)Utilizando PSCP (PuTTY Secure Copy client) podremos transferir ficheros de Windows a Linux y de Linux a Windows de forma segura (encriptados) utilizando SSH. PSCP es gratuito y está disponible en:
Descargaremos pscp.exe y lo copiaremos (a ser posible) a alguna de las carpetas que se encuentren en la variable de entorno PATH, de esta forma podremos ejecutarlo como un comando de Windows. Lo recomendable es copiar el fichero pscp.exe a la carpeta de Windows, si no se copia a una de estas carpetas sólo podremos ejecutarlo accediendo a la carpeta donde lo tengamos. Otra posibilidad es agregar la carpeta que contenga pscp.exe a la variabla PATH del sistema. Una vez que tengamos este fichero en la carpeta apropiada podremos abrir una consola de MS-DOS (shell de la línea de comandos), desde "Inicio" - "Ejecutar", escribiremos "cmd" y pulsaremos "Aceptar". Por ejemplo, para transferir el fichero:
del equipo con GNU Linux a la carpeta:
Del equipo con Windows (desde el que estamos ejecutando pscp) ejecutaremos el siguiente comando (en Windows):
Para transferir ficheros de Windows a Linux:
Para mostrar un listado de los ficheros remotos de una carpeta de GNU Linux en Windows podemos utilizar este comando:
La sintaxis del comando pscp (PuTTY Secure Copy client):
Como hemos explicado PSCP (PuTTY Secure Copy client) puede ser usado para hacer copias de seguridad de un equipo Windows a uno Linux o viceversa. Transferencia de ficheros mediante FTP con FileZilla Client y SSHUtilizando FileZilla Client, un software gratuito y open source disponible en:
Podremos acceder mediante FTP de forma segura utilizando SSH a nuestro equipo con GNU Linux y OpenSSH desde cualquier otro equipo Linux, Windows o Mac OS. Descargaremos e instalaremos FileZilla Client y pulsaremos en "Archivo" - "Gestor de sitios...", pulsaremos en "Nuevo sitio" e introduciremos los siguientes datos:
Pulsaremos "Conectar" en la ventana anterior para acceder mediante FTP a GNU Linux desde Windows. Si todo es correcto ya tendremos acceso a todas las carpetas del equipo con GNU Linux a las que tenga permisos el usuario con el que hayamos iniciado sesión. Podremos transferir ficheros o carpetas de equipo con GNU Linux al equipo con Windows y viceversa: Anexo
Artículos relacionados
CréditosArtículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft. Anuncios
Enviado el Miércoles, 30 diciembre a las 22:46:00 por ajpdsoft
|
|