Instalación y configuración del acceso remoto

En esta entrada aprenderemos como instalar y configurar dos formas de acceder de forma remota a los equipos de nuestra red local. La primera será mediante SSH con la cuál accederemos de entre los equipos con sistema Linux independientemente de si tienen o no entorno gráfico. Por otro lado tenemos VNC, que nos servirá para acceder mediante escritorio remoto desde un equipo a otro.

Instalación de SSH

Como primer paso en nuestro servidor bunny comprobaremos que tenemos instalado el cliente ssh, si no es así lo instalaremos mediante:

apt-get install openssh-client

En nuestro cliente Linux lucas, comprobaremos que tenemos instalado el servidor ssh, si no es así lo instalaremos mediante:

apt-get install openssh-server

Configuración del servidor SSH

Como método de seguridad de los clientes cambiaremos el puerto por el que accederemos mediante ssh, para hacer esto nos iremos al fichero de configuración del cliente ssh el cual esta en /etc/ssh/sshd_config.

En el fichero de configuración buscaremos la siguiente linea:

Port 22

La modificaremos y cambiaremos por:

Port 2222

Por lo que ahora si queremos acceder al cliente mediante ssh deberemos hacerlo por el puerto 2222.

Como nuestra intención es administrar a los clientes el acceso será mediante el usuario «root«, y para que esto sea posible tendremos que ir de nuevo al fichero de configuración del servidor ssh y buscar la siguiente linea:

PermitRootLogin without-password

La cual deberemos comentar con «#» al principio del renglón.

Ahora que ya hemos terminado de configurar el servidor ssh en el cliente Linux lucas deberemos reiniciar el servicio para que los cambios sean efectivos:

systemctl restart ssh

Creación de la clave pública y la clave privada

Con el fin de poder acceder a los clientes desde el servidor sin necesidad de conocer la contraseña de este, necesitaremos un par de claves, donde la privada la tendremos en el sistema desde donde vamos a administrar y la publica en el sistema al cual vamos a acceder. Para la generación de un par de claves haremos lo siguiente desde el servidor bunny:

ssh-keygen

Nos preguntará donde se guardarán, por defecto es en «~/.ssh/«, también tendremos que introducir una contraseña para el uso de la clave privada, aunque esto es opcional podemos dejarlo vacío si lo deseamos.

La clave privada la llamaremos «id_rsa» y la tendremos guardada en el directorio «.ssh/» el cuál estará en el directorio personal del servidor bunny.

La clave pública deberemos llevarla hasta el cliente Linux lucas en el directorio «.ssh/» que estará de nuevo situado en el directorio personal. En el caso que no exista lo crearemos estando logados como root mediante:

mkdir ~/.ssh/

Y para mover la clave pública usaremos el comando «scp» por lo que logados como root en el servidor buuny haremos lo siguiente:

scp ~/.ssh/id_rsa.pub root@192.168.0.200:~/.ssh/

Cuando entremos al cliente por ssh lo haremos mediante root para poder administrar el sistema, es por ello que «~» en esta ocasión corresponde al usuario root del servidor bunny ya que estamos logados con dicho usuario.

En está ocasión no se llamará «id_rsa», sino que deberemos crear un fichero llamado «authorized_keys» el cual contendrá el contenido de nuestra clave pública.

En el caso de ser la primera clave pública que usamos en vez de crear el fichero podemos renombrar nuestra clave pública obteniendo el mismo resultado. Esto solo será valido par la primera clave pública:

cd ~/.ssh
mv id_rsa.pub authorized_keys

Configuración del cliente SSH

Una vez tenemos tanto la clave pública como la privada donde deben estar, ya podríamos acceder desde el cliente ssh de nuestro servidor bunny al servidor ssh en nuestro cliente lucas, pero deberíamos introducir la contraseña de la clave privada cada vez que queramos administrar el cliente lucas, por ello a continuación pongo una posible solución a esto si se desea realizar, ya que no es necesario para que funcione.

Desde el sistema donde está el cliente ssh, es decir el servidor bunny, ejecutaremos los siguientes comando:

ssh-agent
ssh-add

Es posible que al introducir «ssh-add» nos devuelva el siguiente error:

root@bunny:~/.ssh# ssh-add 
Could not open a connection to your authentication agent.

Para solucionarlo solo tendremos que introducir:

eval "$(ssh-agent)"

Y de nuevo ejecutaríamos «ssh-add» y nos pedirá la clave que asignamos cuando creamos el par de claves en el caso de que lo hiciéramos.

Prueba de funcionamiento SSH

Para comprobar que todo funciona correctamente intentaremos acceder desde el servidor bunny al cliente lucas. Esto podremos hacerlo mediante:

ssh -p2222 root@192.168.0.200

Mediante el parámetro «p» indicamos a través de que puerto estamos conectándonos.

root@bunny:~/.ssh# ssh -p2222 root@192.168.0.200

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Mar 5 02:55:45 2017 from bunny.poncedeleon.org
root@lucas:~#

En el caso de que intentemos conectarnos al cliente desde el servidor pero no estemos logados como root sino como otro usuario no funcionará el par de claves, puesto que la clave privada está en el directorio personal del usuario root del servidor, pero no en el resto de usuarios del servidor.

Instalación del servidor VNC

Mediante el uso de un servidor VNC conseguiremos administrar los clientes Linux con entorno gráfico de nuestra red local desde un cliente Windows. Para ello tendremos que irnos a nuestro cliente lucas y desde la consola logados como root:

apt-get install x11vnc

Instalación del cliente VNC

Ahora que ya tenemos el servidor VNC en lucas, debemos instalar un cliente VNC desde nuestro cliente Windows porky como puede ser VNC-Viewer. Desde este accederemos al servidor VNC.

Configuración del servidor VNC

Una vez tenemos instalado el servidor VNC para permitir el acceso a nuestro equipo solo sería necesario ejecutarlo:

x11vnc

Como medidas opcionales podemos usar algunos de los parámetros disponibles.

  • storepasswd. Con esto asignamos una contraseña al servidor de modo que cuando nos conectemos podemos decir que el cliente debe introducirla para establecer la conexión con el servidor. Se usa individualmente del resto de los parámetros, es decir primero ejecutamos este para asignar una contraseña y después iniciamos el servidor con el parámetro «usepw».
  • usepw. Nos permite usar los ficheros ~/.vnc/passwd y ~/.vnc/passwdfile a la vez, los cuales contienen almacenadas las contraseñas que permiten establecer la conexión con el servidor.
  • passwd. Es parecido a «storepasswd», pero esto solo tiene efecto una vez ya que se añade a la linea con la que iniciamos el servidor seguida de la contraseña será requerida para conectarse.
  • bg. Nos permite ejecutar el servidor en segundo plano de modo que no será necesario tener la consola abierta mientras este se está ejecutando.
  • forever. Por defecto al terminar la conexión entre el cliente y el servidor VNC se para el servidor VNC por lo que no es posible volver a conectarse a no ser que volvamos a ejecutarlo, para evitar esto usamos el parámetro «forever».
  • rfbport. Al igual que en SSH cambiamos el puerto por el que se establecía la conexión, aquí también podemos hacerlo mediante este parámetro.

Un ejemplo sería:

x11vnc -passwd contraseña -forever -rfbport 2222 -bg

y para parar el servidor en segundo plano y terminar con todas las conexiones usaremos:

killall x11vnc

Prueba de funcionamiento VNC

Para comprobar que todo funciona correctamente nos conectaremos desde el cliente porky al cliente lucas, para ello ejecutaremos en lucas el servidor con alguno de los parámetros que hemos visto anteriormente:

x11vnc -rfbport 3333 -passwd contraseña -bg

1

Ahora nos iremos al cliente porky desde el cual nos conectaremos al cliente lucas mediante su IP seguida de «:» y el puerto por el que vamos a establecer conexión. Nos pedirá la contraseña que indicamos al iniciar el servidor.

2

Al introducir la contraseña veremos como se nos abre una nueva ventana en la cuál veremos el escritorio de nuestro cliente Linux lucas.

3

Deja un comentario