Acceso remoto con WinSCP, pero sin root

Cuando uno empieza a conocer Linux, lo primero que le explican que hay un usuario  “root” que “lo puede hacer todo”, pero que no se debe utilizar nunca. Eso es una de las cosas mas difíciles de comprender para los pobres mortales que venimos de windows, pero, a medida que vas conociendo Linux, descubres que gran parte de su seguridad, se basa en ese principio. Entonces es cuando empiezas a utilizar contraseñas “duras”, y reduces su empleo. Pero, cuando llega la necesidad de utilizar acceso remoto, la tentación de usar WinScp es demasiado fuerte, estos días, he tenido que aprender como hacerlo sin utilizar root,…y a continuación esta el resultado.

Para los que no lo conozcáis, WinSCP es un programa que nos facilita una interface gráfica para trabajar en remoto en un servidor linux, que como es natural no tiene las Xs instaladas.

WinScp. Pantalla de trabajoEn esta imagen podéis ver de lo que os hablo, a la izquierda el ordenador local, a la derecha el ordenador remoto, y posibilidad de mover ficheros de uno a otro lado, o de abrir, editar y guardar los ficheros remotos, como si fueran de windows….

Pero para que todo esto funcione así de bien, es necesario que el usuario de conexión sea root….o hagamos lo que os comento en este articulo.

Antes de empezar, un comentario mas. Cuando hayamos terminado, el usuario que creemos, esta muy próximo a tener los poderes de root, y entonces,

¿porque es mas seguro?:

Entre otros razonamientos mas complejos, uno muy simple. Si el usuario root existe y nuestro servidor acepta conexiones remotas de root, cualquier atacante, no tendrá que averiguar el nombre del usuario; se limitará a probar contraseñas para root. por este sistema, nuestro atacante no sabrá el nombre del usuario, por lo que su trabajo se complicará, ya que deberá averiguar el nombre del usuario, y luego, la contraseña, por lo que los ataques de “Fuerza bruta”quedan casi descartados.

Y ahora, vamos a ello. El trabajo se realiza sobre una maquina Centos 6.5 de pruebas, que habréis visto en otros artículos, pero es perfectamente exportable a cualquier distribución Linux.

Lo primero de todo, prepararemos Linux para que permita la conexión, y para ello, accediendo como “root” localizaremos un programa que utilizaremos después:

2014-12-20_11h03_45

He utilizado el comando “locate” presente en la mayoría de distribuciones, para localizar la ubicación de “sftp-server” perteneciente al paquete Openssh, y que será el servidor que voy a utilizar; veo que se encuentra en

/usr/libexec/openssh/sftp-server

Si no estáis con Centos, deberéis buscarlo, y si no lo encontráis, instalar Openssh.

Ahora deberemos crear nuestro usuario de acceso

2014-12-20_10h21_02y a continuación crearle la correspondiente contraseña

2014-12-20_10h23_20Despues, le deberemos dar permisos para que pueda utilizar el comando “sudo” y tener derechos de superusuario; para ello, deberemos añadirlo al fichero /etc/sudoers. La forma mas correcta de hacerlo es con el comando “visudo”

2014-12-20_10h25_28y nos desplazamos a 2014-12-20_10h26_39

para añadirle un “!” delante de requiretty para que acepte usuarios no conectados a un tty

2014-12-20_10h28_15

luego buscamos una linea que dice

root    ALL=(ALL)    ALL

y le añadimos las lineas marcadas de color:

2014-12-20_11h28_22

La primera linea, nos permite utilizar el comando “sudo” para conseguir acceso de “root” en cualquier momento, mientras que la segunda, hace que no nos pida la contraseña cuando vayamos a lanzar el comando que indicamos a continuación, y que se encuentra en la ruta que hemos localizado anteriormente.

Para mayor tranquilidad nuestra, podemos comprobar en el fichero /etc/ssh/sshd_config y revisamos que se encuentre esta entrada; y si no esta la añadimos

2014-12-20_11h14_03

Naturalmente, el path que indiquemos, dependerá de donde hayamos encontrado antes ese fichero.

Salvamos, y reiniciamos nuestro ssh con:

2014-12-20_11h15_52

Y nuestro servidor ya está a punto, de forma que cerramos la conexión, y ahora vamos a preparar nuestro WinScp, para ello, iniciamos el programa

2014-12-20_11h18_10

En la entrada correspondiente, podremos cambiar al usuario que hemos creado, y le indicaremos la contraseña correspondiente.

Pulsando en el botón de “Avanzado”

2014-12-20_13h51_48

y seleccionamos “SFTP” ; en ese apartado deberemos indicar la ruta donde hemos encontrado el servidor sftp anteriormente, y asegurarnos de estar trabajando con la versión de protocolo SFTP correcto

2014-12-20_13h56_50

Vamos al apartado de Shell y en Shell seleccionamos “sudo su”.

Tras esto, podemos aceptar los cambios y guardar la configuración, para a continuación probar la conexión…veréis que el navegador gráfico funciona perfectamente, y que podéis seguir editando ficheros sin problemas; si os conectáis con “putty”, veréis que no sois root, y cuando necesitéis utilizar ordenes de root, tendréis que hacerlo utilizando “sudo” o “sudo su”.

Podéis abrir el fichero /etc/ssh/sshd_config, localizar la linea en donde se autoriza la conexión de root, y decirle que no:

2014-12-20_14h12_35Guardar el fichero y reiniciar el servicio con :

2014-12-20_11h15_52

La otra acción que también deberíais considerar es cambiar el puerto del SSH, que es el 22, a algún otro numero en donde nadie espere encontrarlo. Esto nos da algo mas de seguridad…

Para ello, volvemos a modificar /etc/ssh/sshd_config; esta vez, si queréis desde la interfaz gráfica:

2014-12-20_14h09_06

En la linea “Port”, la descomentais, y le indicáis el puerto por el que os queréis conectar. Pensad en uno alto, y que este libre, en el ejemplo, he puesto el 1122, pero puede ser cualquier numero hasta 65535.

Acordaros, si tenéis firewall, de abrir el puerto escogido, y de cerrar el 22 ( aunque es mejor que esto ultimo no lo hagáis hasta que os volváis a conectar), luego, solo os queda ir a la configuración de WinScp y modificar el puerto:

2014-12-21_08h42_14y ya os podéis conectar a un servidor un poco mas seguro.

A partir de ahora, si seguís trabajando con “root” será por qué queréis hacerlo; posibilidades para evitarlo, las hay, y ventajas al hacerlo, muchas

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Autentificación y encriptación, Formacion, Linux y etiquetada , , . Guarda el enlace permanente.

Deja un comentario