Skip to content
My Drupal My GitHub My GitLab Ruby on Twitter OneByt on Youtube OneByt on Twitch OneByt on Discord

Seguridad básica para servidor VPS

Cuando se tiene un servidor VPS disponible a Internet es necesario tomar algunas medidas de seguridad básicas para no ser hackeados fácilmente. En el siguiente post se describen los pasos para realizar estas configuraciones básicas.

Agregar usuario diferente de root.

   useradd -m myusuario
   # Para establecer la contraseña del usuario root.
   passwd myusuario

Agregar alias ssh en la PC personal y subir llave ssh.

Este paso se realiza en nuestra PC. El paso de agregar el alias es opcional pero muy cómodo. Editar el fichero /home/myusuario/.ssh/config

vim /home/myusuario/.ssh/config

y agregar la siguiente línea.

# Letra i para editar en vim.
Host miservidor
	HostName tu-ip
	User root
	Port 22
# Teclas esc y :wq para salir y guardar en vim.

Cambiar los valores de myusuario y miservidor por sus correspondientes valores.

Para subir la llave ssh desde la PC local usar el siguiente comando.

ssh-copy-id myusuario@miservidor

Esto permite poder realizar la conexión ssh de sin utilizar contraseña.

Configurar SSH.

Para realizar las configuraciones del servidor ssh es necesario conectarse vía ssh al servidor.

ssh miservidor

Ya dentro del servidor se edita el fichero /etc/ssh/sshd_config.

vim /etc/ssh/sshd_config

En este fichero es necesario realizar varios cambios.

Después de guardar los cambios realizados, reiniciar el servicio ssh.

service ssh restart

Después de realizada esta configuración es necesario ir al paso Agregar alias ssh en la PC personal y subir llave ssh. y cambiar el puerto de la configuración del alias.

Cambiar contraseña del root.

Para cambiar la contraseña de root del servidor es necesario conectarse via ssh al servidor

# Conectarse vía ssh al servidor.
ssh miservidor

Ejecutar el siguiente comando y seguir las instrucciones, es importante generar una contraseña segura y guardarla en un lugar seguro.

# Cambiar contraseña del root
passwd root

Enviar notificación a un canal de Telegram cuando se accede vía ssh.

En este caso se usa Telegram, pero se puede configurar con el sistema que se desee.

Primero crear un bot de Telegram con BotFather y copiar el token. Después hay que obtener el ID del Grupo o Canal a donde se van a enviar las alertas. Esto se puede hacer fácilmente con la versión web de Telegram. Al entrar en el Grupo o Canal en la URL se muestra el ID con el siguiente formato https://web.telegram.org/a/#-XXXXXXXXXXX.

Teniendo estos datos se puede agregar el siguiente fichero en el servidor /usr/local/bin/notify.

#!/bin/bash

CHAT_ID=-XXXXXXXXXXX
BOT_TOKEN=XXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

IP=$(echo $SSH_CLIENT|awk '{print $1}')

silent="true"
MESSAGE="
A user signed into your server TuServidor through SSH.
-------------------------------------------
Username: ${USER}@$(hostname -f)
IP Address: $IP"
 
curl -s --data-urlencode "text=${MESSAGE}" --data "chat_id=${CHAT_ID}" --data "parse_mode=HTML" --data "disable_notification=$silent" 'https://api.telegram.org/bot'${BOT_TOKEN}'/sendMessage' > /dev/null

Después se deben realizar los siguientes pasos:

if [ -n "$SSH_CLIENT" ]; then
/usr/local/bin/notify
fi

Con estos pasos realizados cuando se abre una conexión ssh al servidor se envía un mensaje al canal de Telegram.