Cómo configurar su servidor para un nodo seguro de Waves

Es realmente fácil instalar y ejecutar un nodo completo de Waves:

  • Tienes o compras al menos 1000 Waves
  • Obtiene un VPS con Ubuntu 16.04 ejecutándose en él
  • Siga las instrucciones en https://github.com/wavesplatform/Waves/wiki/How-to-install-Waves-node-on-Ubuntu (o siga este video tutorial https://www.youtube.com/watch?v = CDmMeZlzKbk)
  • Espera a que se sincronice la cadena de bloques, arrienda tus propias Waves a tu nodo ... ¡y ahí estás con un nodo completo de la cadena de bloques más rápida del mundo!

Su nodo ahora es parte de la red descentralizada de Waves y está listo para procesar diferentes tipos de transacciones, recibir Waves arrendados y, finalmente, extraer un bloque que le otorgue una recompensa.

Si su servidor no está protegido contra amenazas externas, entonces sus fondos están en riesgo. En el siguiente artículo, le mostraré cómo tener una configuración básica pero efectiva para evitar que se ataquen los vectores de ataque más comunes.

Contenido:

  • Crear un usuario
  • Cree claves privadas y públicas y configure SSH
  • Configurar firewall
  • Mantenga su servidor actualizado

Introducción

Tiene un Ubuntu 16.04 VPS con dirección IP y contraseña de root.
¡Instalará el nodo Waves y sincronizará la cadena de bloques, pero antes de hacerlo, primero debe asegurar su servidor!

Comenzamos con la creación de un nuevo usuario para luego deshabilitar la cuenta raíz demasiado poderosa, luego creamos claves SSH para acceder al servidor, deshabilitamos los inicios de sesión de contraseña y configuramos un firewall para mantener abiertos solo los puertos que realmente necesitamos.

Abra una terminal y acceda a su servidor con SSH usando la cuenta raíz, suponiendo que 100.20.30.40 es la IP de su VPS:

ssh root@100.20.30.40

Crear un usuario

Iniciando sesión como root, puede crear un nuevo usuario, llamémoslo fullnode:

adduser fullnode

Ahora escriba dos veces una nueva contraseña para el usuario, haga que sea complejo y difícil de adivinar. Cuando se le pregunte sobre Nombre completo, teléfono, etc. simplemente ingrese Enter, no necesita completar todos los campos.

Debe agregar el usuario al grupo sudo:

usermod -aG sudo fullnode

El nuevo usuario ahora es un usuario privilegiado. Ahora puede finalizar la sesión como root:

salida

e inicie sesión como usuario de nodo completo utilizando la contraseña que escribió para crearla:

ssh fullnode@100.20.30.40

Cree claves privadas y públicas y configure SSH

Un inicio de sesión protegido con contraseña no es realmente seguro y lo más probable es que la contraseña raíz se haya enviado en texto claro por correo electrónico. Un atacante que ingrese a su cuenta de correo electrónico también puede ser dueño de su nodo, si no ingresa a su correo electrónico aún puede forzar el inicio de sesión en su servidor mediante una combinación de contraseña.

Es por eso que crearemos claves SSH para un método de inicio de sesión menos débil y lo asociaremos al nuevo usuario, deshabilitaremos los inicios de sesión de contraseña y deshabilitaremos la cuenta raíz.

Usted crea claves SSH (privadas y públicas) en su computadora y luego carga la clave pública en el VPS.

Abra una terminal en su computadora y muévase a la carpeta SSH (es lo mismo para Linux y MacOs):

cd .ssh

Crea las claves con el comando:

ssh-keygen -t rsa -b 4096

Obtendrá una salida similar a esta:

Generando pares de claves rsa públicas / privadas.
Ingrese el archivo en el que guardará la clave (/home/myuser/.ssh/id_rsa):

Nombre sus claves fullnode, no elija el nombre predeterminado. Elija una frase de contraseña larga y compleja y escríbala dos veces. Ahora sus claves están listas para ser utilizadas y puede copiar la pública en el VPS en el archivo autorizado_claves, use este comando de una sola línea para hacerlo:

gato fullnode.pub | ssh fullnode@100.20.30.40 "mkdir -p ~ / .ssh && cat >> ~ / .ssh / Authorized_keys"

Ahora podemos configurar SSH en el servidor para comenzar a usar las claves como método de inicio de sesión. Inicie sesión por última vez con la contraseña:

ssh fullnode@100.20.30.40

y edite el archivo de configuración SSH:

sudo nano / etc / ssh / sshd_config

Elimine el comentario (el carácter #) de las siguientes líneas:

AuthorizedKeysFile% h / .ssh / certified_keys

y cambie sí a no en la línea:

Contraseña Autenticación no

Además, podemos cambiar el puerto SSH predeterminado para evitar escaneos automáticos de puertos y robots automatizados maliciosos. Cambie el número 22 en el puerto de línea a un número preferiblemente menor que 1024:

Puerto 1020

Recuerde permitir el puerto SSH personalizado en el firewall; de lo contrario, quedará bloqueado de su servidor.

Guarde (CTRL + O e Intro) y cierre el archivo (CTRL + X). Reinicie el servicio SSH y salga de la sesión.

sudo service ssh restart
salida

Ahora podemos probar si el inicio de sesión con SSH funciona bien y, si es positivo, podemos desactivar el inicio de sesión raíz. A partir de ahora utilizará este comando para iniciar sesión en su servidor.

Si estás en Linux:

ssh -i /home/myuser/.ssh/fullnode -p 1020 fullnode@100.20.30.40

Si está en MacOs, cambie la ruta a:

ssh -i /Users/myuser/.ssh/fullnode -p 1020 fullnode@100.20.30.40

Ingrese la frase de contraseña y debe iniciar sesión, una vez que hayamos iniciado sesión podemos desactivar el inicio de sesión y la cuenta de root. Editemos nuevamente el archivo de configuración SSH:

sudo nano / etc / ssh / sshd_config

y cambie a no las siguientes líneas:

PermitRootIniciar sesión no
X11 Reenvío no

Guarde y cierre el archivo, reinicie el servicio SSH:

sudo service ssh restart

Ya no puede iniciar sesión como root.
Para deshabilitar la cuenta raíz en el servidor, escriba el comando:

sudo passwd -dl root

Configurar firewall

El último paso es instalar un firewall y mantener abiertos solo los puertos que el nodo completo de Waves necesita para estar operativo. Instalemos UFW, un front-end para iptables:

sudo apt-get update
sudo apt-get install ufw

El nodo completo necesita 3 puertos abiertos, el puerto SSH personalizado para nuestro inicio de sesión, el 6868 para P2P y el puerto http (80) para las actualizaciones del sistema. Instruimos al firewall con estos dos comandos:

sudo ufw permite 1020
sudo ufw permite 6868
sudo ufw permitir http

Para habilitar el uso del firewall:

sudo ufw enable

Eso es lo que necesita para configurar el firewall.

Hay un paquete más para instalar para proteger los puertos SSH y HTTP de un número excesivo de solicitudes, como ataques de fuerza bruta. Instalar fail2ban con:

sudo apt-get install fail2ban

Necesitamos editar el archivo de configuración fail2ban ya que cambiamos el puerto SSH predeterminado. Abre el archivo:

sudo nano /etc/fail2ban/jail.local

y edite las líneas relativas a SSH:

puerto = ssh

a su puerto SSH personalizado, en nuestro ejemplo a 1020:

puerto = 1020

Guarde y cierre el archivo, no olvide reiniciar fail2ban:

servicio sudo fail2ban reiniciar

Mantenga su servidor actualizado

Un servidor con software actualizado es más resistente contra errores conocidos y técnicas de piratería comunes. Puede actualizar manualmente su servidor con:

sudo apt-get update
sudo apt-get upgrade

Es mejor manejar la seguridad actualizada automáticamente y el paquete de actualizaciones desatendidas lo hace por usted. Instalarlo con:

sudo apt-get install actualizaciones desatendidas

y configúrelo con el comando:

sudo dpkg-reconfigure actualizaciones desatendidas

Seleccione Sí y Aceptar en las siguientes dos preguntas para finalizar la configuración.

Conclusión

Un servidor conectado a Internet puede ser atacado por piratas informáticos, bots y scripts automáticos tan pronto como esté disponible en línea, con este tutorial puede reducir efectivamente el riesgo de contraseñas de fuerza bruta y ataques a puertos abiertos.

Debe mantener en secreto su contraseña y frase de contraseña y nunca compartir en línea su clave privada SSH. Use un conjunto de claves SSH solo para un nodo y cree un nuevo conjunto con una frase de contraseña diferente para cada nuevo nodo.

Nodo WDTMC

¿Te fue útil el tutorial?
Si desea donar o arrendar Waves a mi nodo, use la dirección:

3P8bVfmENR7bPhqbPCzjyzrGodrTMNfqVZX

o use el alias wdtmc.