Configurar inicial VPS Ubuntu 24.04 LTS para Accesos SSH
Introducción
Al crear un nuevo servidor Ubuntu por primera vez, se deben realizar acciones importantes como parte de la configuración inicial. Este proceso estará siendo ejecutado en un VPS del proveedor IONOS, pero puedes tomar este tutorial como base para ejecutar estas acciones en un proveedor de Cloud Computing como AWS por poner un ejemplo.
Índice
- Iniciar sesión como root
- Crear nuevo usuario
- Habilitar permisos de super administrador
- Dar de alta un firewall
- Conceder accesos externos para nuevos usuarios
- Acceder vía SSH con nuevo usuario
- Crear una llave cifrada SSH
Paso 1 – Iniciar sesión como root
Para iniciar sesión en su servidor, necesitarás saber la dirección IP pública de su servidor, así que nosotros usaremos como ejemplo los comandos de la terminal usando variables como ip_de_servidor para que puedas entender de mejor manera el tutorial.
$ ssh root@ip_de_servidor
Acepte la advertencia sobre la autenticidad del host si aparece. Si su servidor utiliza autenticación por contraseña, proporcione su contraseña de root para iniciar sesión.
Paso 2 – Crear nuevo usuario
Una vez iniciado como root debemos crear una nueva cuenta de usuario para iniciar con ella en lugar de usar la cuenta de root por motivos de seguridad, esto es una buena práctica.
En el siguiente ejemplo haremos mención de un nuevo usuario llamado demo, pero tú debes remplazarlo por el nombre del usuario que vayas a usar en tu servidor.
# adduser demo
Al momento de dar de alta al usuario tendrás que dar de alta una contraseña y confirmarla, para ello te sugiero usar Lastpass como herramienta que facilita la generación de contraseñas aleatorias y seguras.
Posteriormente se te harán algunas preguntas, como el nombre completo, teléfono, teléfono laboral y número de cuarto, esta información la puedes responder de forma personal, es indiferente la información que pongas, lo único importante es usar una contraseña segura.
Paso 3 – Habilitar permisos super administrativos
Para evitar cerrar sesión con su usuario habitual y volver a iniciarla como root, puede configurar privilegios de superusuario o root para su cuenta. Estos privilegios le permitirán ejecutar comandos con privilegios administrativos, simplemente colocando la palabra “sudo” antes del comando.
Para añadir estos privilegios a su nuevo usuario, deberá agregarlo al grupo de sistema “sudo”. Por defecto, en Ubuntu, los usuarios que pertenecen al grupo “sudo” pueden usar el comando “sudo”.
# usermod -aG sudo demo
Ahora puede escribir sudo antes de los comandos para ejecutarlos con privilegios de superusuario cuando inicie sesión en el usuario demo.
Paso 4 – Dar de alta firewall
Los servidores Ubuntu pueden usar el firewall UFW para garantizar que solo se permitan conexiones a ciertos servicios. Puedes configurar un firewall básico con esta aplicación.
# ufw app list
Output
Available applications:
OpenSSH
Deberás asegurarte de que el firewall permita conexiones SSH para poder iniciar sesión en su servidor la próxima vez. Para permitir estas conexiones, ejecuta la siguiente línea de comando:
# ufw allow OpenSSH
Ahora habilita el firewall escribiendo:
# ufw enable
Escribe Y y pulsa ENTER para continuar. Puedes comprobar que las conexiones SSH siguen permitidas escribiendo:
# ufw status
Esperando una salida como la siguiente:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Ahora El firewall está bloqueando todas las conexiones excepto SSH. Si instalas y configuras servicios adicionales, deberás ajustar la configuración del firewall para permitir el nuevo tráfico en el servidor.
Paso 6 – Crear una llave SSH en servidor local
Para ello tienes que crear una llave SSH en tu servidor local, si estás usando Windows te sugerimos usar la herramienta Git BASH.
$ ssh-keygen -t rsa -b 4096 -C "tu_email@ejemplo.com"
Este comando creará una nueva clave SSH usando el correo electrónico como etiqueta.
Se le pedirá que introduzca un archivo para guardar la clave.
Puede especificar una ubicación de archivo o pulsar “Intro” para aceptar la ubicación predeterminada.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/local_user/.ssh/id_rsa):
Created directory '/home/local_user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
En este punto, se habrá generado una nueva clave SSH en la ruta de archivo especificada previamente.
Output
Your identification has been saved in /home/local_user/.ssh/id_rsa
Your public key has been saved in /home/local_user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:PAOSRI80934RM+098QUWRNDIK/adf089uSJDNAÑO998 local_user@server
The key's randomart image is:
+---[RSA 4096]----+
| |
| + |
| . o +. |
| . + +.oo |
| = E.+ So |
| o +.+oB.o . |
| o=..+=o +. |
| o..+ .+=..oo |
| .+. o*=+o... |
+----[SHA256]-----+
Ahora deberás añadir la nueva clave SSH a ssh-agent, el cual es otro programa que forma parte del conjunto de herramientas SSH. Ssh-agent se encarga de almacenar las claves privadas. Es como una especie de llavero. Además de almacenar las claves privadas, también gestiona las solicitudes para firmarlas con ellas, de modo que nunca se transmitan de forma insegura.
Antes de añadir la nueva clave SSH a ssh-agent, asegúrese de que esté en ejecución. Para ello, ejecute:
$ eval "$(ssh-agent -s)"
Output
Agent pid 68235
Esto iniciará el programa del agente y lo colocará en segundo plano. Ahora, debe agregar su clave privada al agente para que pueda administrarla:
$ ssh-add
Enter passphrase for /home/local_user/.ssh/id_rsa:
Identity added: /home/local_user/.ssh/id_rsa (loca_user@server)
Paso 7 – Crear una llave SSH en servidor remoto
Generar un nuevo par de claves SSH pública y privada en su equipo local es el primer paso para autenticarse con un servidor remoto sin contraseña. A menos que exista una buena razón para no hacerlo, siempre debe autenticarse usando claves SSH.
$ ssh-keygen -t rsa -b 4096
ssasfdsad
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Created directory '/home/demo/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
sasdasd
Output
Your identification has been saved in /home/demo/.ssh/id_rsa
Your public key has been saved in /home/demo/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:PAOSRI80934RM+098QUWRNDIK/adf089uSJDNAÑO998 demo@server
The key's randomart image is:
+---[RSA 4096]----+
| |
| + |
| . o +. |
| . + +.oo |
| = E.+ So |
| o +.+oB.o . |
| o=..+=o +. |
| o..+ .+=..oo |
| .+. o*=+o... |
+----[SHA256]-----+
Este procedimiento ha generado un par de claves RSA SSH ubicado en el directorio oculto .ssh del directorio personal de su usuario. Estos archivos son:
~/.ssh/id_rsa: La clave privada. ¡NO COMPARTA ESTE ARCHIVO!
~/.ssh/id_rsa.pub: La clave pública asociada. Puede compartirse libremente sin consecuencias.
$ eval "$(ssh-agent -s)"
Ooutput
Agent pid 98765
Una vez que se ejecuta el agente SSH, el siguiente comando agregará la nueva clave SSH al agente SSH local.
$ ssh-add
Enter passphrase for /home/demo/.ssh/id_rsa:
Identity added: /home/demo/.ssh/id_rsa (demo@server)
To copy your public key to a server, allowing you to authenticate without a password, a number of approaches can be taken.
If you currently have password-based SSH access configured to your server, and you have the ssh-copy-id utility installed, this is a simple process. The ssh-copy-id tool is included in many Linux distributions’ OpenSSH packages, so it very likely may be installed by default.
If you have this option, you can easily transfer your public key by typing:
ssh-copy-id username@remote_host
Paso 7 – Accediendo desde un servidor externo
$ ssh-copy-id cideapps@74.208.45.199
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/c/Users/Marco Aspeitia/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
cideapps@74.208.45.199's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'cideapps@74.208.45.199'"
and check to make sure that only the key(s) you wanted were added.
0 Comentarios