Este es uno de los capítulos del tutorial Servidor virtual. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.
Una vez ya tienes tu VPS contratado y disponible con cualquier proveedor, llega el momento de dar los primeros pasos con tu VPS. En particular, yo me he decantado por un VPS con Ubuntu. ¿Porque he elegido Ubuntu? Simple y llanamente porque es mi distribución de cabecera, con la que mejor me encuentro y la que mejor conozco.
En el caso del proveedor que estoy utilizando, todo es realmente sencillo. Solo tienes que eligir entre las distribuciones que tienen disponibles, Ubuntu, FreeBSD, Fedora, Debian y CenOS. De cada una de las distribuciones, también debes elegir ua de las versiones disponibles. Nuevamente, en mi caso me decanto por Ubuntu 18.04 x64. A lo mejor debía haber optado por la 16.04 x64, por aquello de que lleva mas rodaje, pero lo cierto es que tampoco me preocupa mucho actualmente.
Una vez hecho, esto, obtendrás la dirección IP, con la que podrás acceder vía SSH a tu VPS…
¿Y ahora que hacemos?
Primeros pasos con tu VPS
Acceso
Como he comentado, de los primeros pasos con tu VPS a realizar, es evidentemente acceder a tu VPS vía SSH, mediante la dirección IP facilitada por el proveedor. ¿Como accederemos?
Desde tu equipo abre un terminal y ejecuta,
ssh root@IP_VPS
donde IP_VPS
es el IP del proveedor del servicio
Una vez estemos dentro, nos pedirá que cambiemos la contraseña del administrador. Pero no solo vamos a cambiar la contraseña del administrador, vamos a crearnos un usuario que será con el que trabajemos. Y es que utilizar el usuario root
es un peligro, porque en un despiste puedes acabar con todo tu trabajo.
Actualizando…
Nada mas acceder lo primero es actualizar nuestro sistema, tal y como hacemos con nuestro propio equipo. Para ello, ejecutaremos las siguientes órdenes,
apt update && apt upgrade
Creando un usuario
El segundos de estos primeros pasos con tu VPS, va a ser crear un usuario. Esto es tan sencillo como ejecutar la siguiente orden,
adduser lorenzo
Esto te va a pedir una contraseña. Te recomiendo que pongas una contraseña suficiente segura para evitar que cualquiera tenga acceso a tu VPS. Ten en cuenta que esto no es una Raspberry Pi, que está en tu red local. Aquí hay acceso desde cualquier punto de internet, con lo cualquiera puede entrar en el VPS.
El siguiente paso es dar a nuestro usuario derechos de administrador. Para eso nuestro debe pertenecer al grupo sudo
. Así que siendo root
tienes que ejecutar la orden,
gpasswd -a lorenzo sudo
Recuerda sustituir lorenzo
por tu nombre de usuario, de lo contrario, tendré acceso a tu VPS. Siempre y cuando me des la contraseña, claro.
Autentificación por clave pública
Aunque en algunos sitios indican este paso como opcional, entre los primeros pasos con tu VPS, creo que mas bien, debe ser un paso fundamental. Durante un tiempo, estuve accediendo vía SSH con usuario y contraseña
, y ahora veo todo el tiempo que he perdido en mi vida. El acceso por clave pública es imprescindible para tu buena higiene mental.
Para ver como configurar tu acceso vía SSH con clave pública te recomiendo que le des un ojo al artículo sobre la sincronización sin contraseña. Por otro lado, te recomiendo que leas este artículo sobre configuración de SSH, porque igualmente te va a facilitar mucho el trabajo.
Segurizando el acceso vía SSH
El siguiente movimiento en estos primeros pasos con tu VPS, va a ser segurizar SSH. Para eso, y atendiendo a que hemos seleccionado la autentificación por clave pública, vamos a impedir acceder a nuestro VPS de otra forma. Esto tiene un peligro, y es que si pierdes tu clave pública no tendrás acceso. Pero, esto es lo mismo que si pierdes tu contraseña u olvidas tu nombre de usuario. Con lo que tu obligación es mantener tus credenciales siempre a buen recaudo.
Lo que haremos a continuación, siguiendo como root
es editar el archivo de configuración /etc/ssh/sshd_config
y cambiar los siguientes valores,
PasswordAuthentication no PermitRootLogin no
Con la primera deshabilitamos el acceso vía SSH con contraseña, solo lo podremos hacer vía clave pública. Mientras que con la segunda evitaremos el acceso como root
.
Además añadiremos la siguiente línea,
AllowUsers lorenzo
Recuerda cambiar lorenzo
por tu nombre de usuario, por lo que te he explicado anteriormente.
Por último vamos a cambiar el puerto por el que accedemos vía SSH. No es que sea esta una gran medida, pero al fin y al cabo se trata de ponerlo difícil a los usuarios.
Para hacer esto al inicio del archivo /etc/ssh/sshd_config
descomenta #Port 22
y sustitúyelo por el número de puerto que quieras, así por ponerlo fácil Port 9876
.
Una vez realizados estos cambios te queda reiniciar el servicio ssh. Para ello ejecuta la siguiente orden,
systemctl restart ssh
El cortafuegos
Otra herramienta imprescindible a la hora de segurizar tu VPS es la utilización de un cortafuegos. La forma sencilla de gestionar el cortafuegos en Linux es utilizando UFW, que es el acrónimo de Uncomplicated Firewall. Una herramienta que no es mas que un gestor de iptables.
El primer paso es instalar ufw
en el caso de que no lo tengas instalado. Para ello, tan solo tienes que ejecutar la orden,
sudo apt install ufw
Ahora ya tienes que anteponer sudo
, porque estás accediendo como tu usuario por defecto.
El siguiente paso es comprobar el estado de ufw
, para ello, solo tienes que ejecutar la orden,
sudo ufw status
Por regla general te arrojará el mensaje Status: inactive
. Vamos a establecer la configuración por defecto,
sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 9876/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 50000:51000/udp
Las dos primeras líneas nos aplican la configuración por defecto. La tercera es para la conexión SSH, recuerda que la has cambiado para dificultar el acceso vía SSH y la cuarta es para el acceso vía HTTP, mientras que la quinta es para acceso vía HTTPS. Y la última es para la configuración de mosh. Si no conoces mosh, te recomiendo que le des un vistazo al artículo sobre ssh móvil sin cortes.
Una vez hemos añadido todas estas reglas ha llegado el momento de habilitar el cortafuegos. Pero antes asegurate de que has añadido la regla para poder acceder vía ssh, de lo contrario te quedarás sin acceso. Para habilitar el cortafuegos, ejecuta la orden,
sudo ufw enable
Ahora, si vuelves a ejecutar sudo ufw status
, el resultado será algo así como,
Status: active To Action From -- ------ ---- 9876/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 50000:51000/udp ALLOW Anywhere 9876/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6) 50000:51000/udp (v6) ALLOW Anywhere (v6)
Si quieres en un momento deshabilitar el cortafuegos, tan solo tienes que ejecutar la orden sudo ufw disable
. Por otro lado, Si quieres borrar alguna de las reglas anteriores deberás ejecutar la orden sudo ufw delete <regla>
. Por ejemplo,
sudo ufw delete allow 80/tcp
Conclusión
Como ves han sido unas sencillas acciones, pero con estos primeros pasos con tu VPS, vamos a estar mas tranquilos y seguros (dentro de lo que cabe claro).
En el siguiente capítulo del tutorial vamos a añadir un certificado Let’s Encrypt para poder hacer mas cosillas de forma segura. Evidentemente, como veremos, esto requiere que tengas un dominio contratado. Pero, sinceramente, creo que te valdrá la pena, porque aún con todo, vas a tener todo un arsenal de servicios al alcance de tu móvil…
Más información,