Monta tu WordPress 1: Lo primero es lo primero: configuración SSH

Configuración inicial servidor VPS y acceso remoto

Este es el primer artículo de una serie para Montar tu propio WordPress en un servidor VPS.
Si vamos a instalar un servidor en un alojamiento VPS, lo primero que haremos es preparar el entorno para nuestra instalación. Estamos hablando de configurar el acceso remoto mediante SSH y crear un nuevo usuario para el uso diario.

También puedes seguir esta serie de artículos desde una máquina virtual o en tu ordenador con Linux, aunque deberás saltarte algunos pasos. Por ejemplo, la instalación del certificado Letsencrypt no se puede hacer sobre un certificado que apunte a una IP en lugar de a un dominio, sin embargo existen dominios gratis.

En primer lugar nos conectamos a la máquina remota en la nube mediante el usuario root y el password que nos han proporcionado al crear la instancia (os recomiento DigitalOcean, Vultr o Linode).

$ shh root@<ip_remota>

Una vez hemos accedido, dependiendo del servicio en la nube, nos pedirá automáticamente cambiar el password. En caso contrario, ejecutamos el cambio de password mediante:

$ passwd

A continuacion creamos un usuario con privilegios normales. Es el momento de empezar a anotar los usuarios y contraseñas para tenerlas organizadas y utilizar KeepassX u otro sistema. Este usuario es el que tendrá permisos sobre los archivos web de wordpress. Podemos llamarlo como queramos, como alguno de nuestros usuarios que utilizamos normalmente o con algo que haga relación a la web.

Creación de un usuario para nuestro servidor

$ adduser usuario-server

Nos pedira el nuevo password de usuario, lo anotamos y luego nos preguntará una serie de datos (Full Name [], Room Number [], etc.) que podemos omitir pulsando Enter.

Ahora debemos configurar nuestro nuevo usuario para que pueda ejecutar comandos como el “superusuario” root. En caso contrario, si ejecutamos un comando como administrador mediante (sudo, superuser do) nos daría el error:

usuario-server is not in the sudoers file. This incident will be reported.

Para dar permisos de administrador existen varias formas. En Ubuntu podemos añadir el usuario al grupo sudo, pero nosotros utilizaremos la tradicional, editando el archivo sudoers. El archivo se encuentra en /etc/sudoers, pero no debemos editar este archivo directamente, sino mediante el comando:

visudo

Vamos a donde aparece el usuario root y añadimos la siguiente linea:

# User privilege specification
root    ALL=(ALL:ALL) ALL
usuario-server ALL=(ALL:ALL) ALL

Pulsamos Ctrl-O para grabar y Ctrl-X para salir.

Salimos del servidor y comprobamos que podemos acceder correctamente mediante ssh:

logout
usuario-server@<ip_remota>

Acceder a nuestro servidor sin contraseña

Ahora desde el equipo local (Linux o Mac, desde Windows necesitamos descargarnos el programa PuttyGen desde aquí) generamos un par de claves (una pública y otra privada). De esta manera deshabilitaremos el uso de password al acceder a nuestra máquina. El inconveniente es que la clave privada no podemos perderla, ya que no tendríamos forma de acceder al servidor.

$ ssh-keygen

El comando ssh-keygen permite generar claves de distintos tipos (RSA, ECDSA, Ed25519) que representan distintos tipos de algoritmos criptográficos. Por motivos de compatibilidad y para no complicarnos utilizamos el que nos ofrece por defecto (si no ponemos parámetros por defecto es RSA).

El comando nos va a pedir una passphrase. Es parecida a una contraseña y sirve para fortalecer las claves que generamos. Nos a a generar dos archivos, la clave pública y la clave privada:

Your identification has been saved in /home/usuario-server/.ssh/id_rsa
Your public key has been saved in /home/usuario-server/.ssh/id_rsa.pub

Ahora debemos copiar la clave pública al servidor y guardar ambas en un dispositivo de seguridad (pendrive, disco en la nube, etc..). Para copiar la clave podemos utilizar el script ssh-copy-id o el comando scp (desde Windows descargar la utilidad pscp). Mediante ssh-copy-id la sintaxis es la siguiente:

ssh-copy-id usuario-server@<ip_remota>

Mediante scp ejecutaríamos el siguiente comando:

scp id_rsa.pub usuario-server@:/home/usuario-server/.ssh/authorized_keys

A continuación nos pedirá que entremos en el servidor con nuestro usuario-server. Si hemos establecido una passphrase, solo tenemos que introducirla y ya estaremos dentro. Lo que hace el comando ssh-copy-id es simplemente copiar el archivo /home/usuario-local/.ssh/id_rsa.pub en el archivo /home/usuario-server/.ssh/authorized_keys.

Si el nombre no queremos que sea id_rsa.pub, debemos ejecutar el comando ssh-copy-id con el parámetro -i /home/usuario-local/.ssh/. Para que funcione, la clave debe estar en nuestro directorio local .ssh.

Deshabilitar acceso root y mediante contraseña

Ahora solo nos queda deshabilitar el acceso mediante el usuario root, deshabilitar el acceso mediante contraseña y reiniciar SSH. Nos volvemos a conectar (a partir de ahora ya siempre con nuestro usuario-server) y editamos el archivo de configuracion del servicio ssh.

sudo nano /etc/ssh/sshd_config

PermitRootLogin no
# Descomentar la siguiente linea
AuthorizedKeysFile     %h/.ssh/authorized_keys
PubkeyAuthentication yes
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

sudo systemctl restart ssh

Por último entramos con nuestro usuario recién creado para comprobar que todo funciona bien y actualizamos nuestro servidor completamente:

sudo apt-get update && sudo apt-get upgrade && sudo apt dist-upgrade

Mas info:

SSH Keys – https://wiki.archlinux.org/index.php/SSH_keys
Passphrase – https://www.ssh.com/ssh/passphrase

Print Friendly, PDF & Email

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *