Introducción
Al crear un nuevo servidor Rocky Linux 8, debe realizar algunos pasos de configuración como parte de la configuración básica. Esto aumentará la seguridad y la usabilidad de su servidor y le brindará una base sólida para acciones posteriores.
Paso 1: Iniciar sesión como root
Para iniciar sesión en su servidor, necesitará su dirección IP pública . También necesitará la contraseña o, si instaló una clave SSH para la autenticación, la clave privada de la cuenta del usuario root . Si aún no ha iniciado sesión en su servidor, le recomendamos consultar nuestra documentación sobre cómo conectarse a su contenedor con SSH , que explica este proceso en detalle.
Si aún no está conectado a su servidor, inicie sesión como usuario root ahora usando el siguiente comando (sustituya la parte resaltada del comando con la dirección IP pública de su servidor):
ssh root@your_server_ip
Acepte la advertencia sobre la autenticidad del host si aparece. Si usa autenticación con contraseña, proporcione su contraseña de root para iniciar sesión. Si usa una clave SSH protegida con contraseña, es posible que se le solicite que la introduzca la primera vez que la use en cada sesión. Si es la primera vez que inicia sesión en el servidor con contraseña, también es posible que se le solicite que cambie la contraseña de root .
Acerca de Root
El usuario root es el usuario administrativo en un entorno Linux y tiene amplios privilegios. Debido a estos privilegios , se desaconseja su uso habitual. Esto se debe a que parte de su poder reside en la capacidad de realizar cambios muy destructivos, incluso por accidente .
Por lo tanto, el siguiente paso es configurar una cuenta de usuario alternativa con un alcance reducido para el trabajo diario. Esta cuenta podrá obtener mayores privilegios cuando sea necesario.
Paso 2: Crear un nuevo usuario
Una vez que haya iniciado sesión como root , podrá crear la nueva cuenta de usuario que usaremos para iniciar sesión de ahora en adelante.
Este ejemplo crea un nuevo usuario llamado sammy , pero debes reemplazarlo con cualquier nombre de usuario que prefieras:
adduser sammy
A continuación, establezca una contraseña segura para el sammy
usuario:
passwd sammy
Se le pedirá que ingrese la contraseña dos veces. Después de hacerlo, su usuario estará listo para usar, pero primero le otorgaremos privilegios adicionales para usar el sudo
comando. Esto nos permitirá ejecutar comandos como root cuando sea necesario.
Paso 3: Concesión de privilegios administrativos
Ahora tenemos una nueva cuenta de usuario con privilegios normales. Sin embargo, es posible que en ocasiones necesitemos realizar tareas administrativas.
Para evitar cerrar sesión con nuestro usuario habitual y volver a iniciarla como root , podemos configurar privilegios de superusuario o root para nuestra cuenta. Esto permitirá que nuestro usuario habitual ejecute comandos con privilegios administrativos colocando la palabra sudo
antes de cada comando.
Para añadir estos privilegios a nuestro nuevo usuario, debemos añadirlo al grupo wheel . Por defecto, en Rocky Linux 8, los usuarios que pertenecen al grupo wheel pueden usar el sudo
comando.
Como root , ejecute este comando para agregar su nuevo usuario al grupo wheel (sustituya la palabra resaltada con su nuevo nombre de usuario):
usermod -aG wheel sammy
Ahora, cuando inicie sesión como su usuario habitual, podrá escribir sudo
antes los comandos para realizar acciones con privilegios de superusuario.
Paso 4: Configuración de un firewall básico
Los firewalls proporcionan un nivel básico de seguridad para su servidor. Estas aplicaciones se encargan de denegar el tráfico a todos los puertos de su servidor, excepto a aquellos puertos o servicios que usted haya aprobado explícitamente. Rocky Linux cuenta con un servicio llamado [nombre del servicio] firewalld
para realizar esta función. firewall-cmd
Se utiliza una herramienta llamada [nombre del servicio] para configurar firewalld
las políticas del firewall.
Nota: Si sus servidores se ejecutan en DigitalOcean, puede usar opcionalmente los firewalls en la nube de DigitalOcean en lugar de [nombre del firewall] firewalld
. Recomendamos usar solo un firewall a la vez para evitar reglas conflictivas que podrían dificultar la depuración.
Primera instalación firewalld
:
dnf install firewalld -y
La configuración predeterminada firewalld
permite ssh
conexiones, por lo que podemos activar el firewall inmediatamente:
systemctl start firewalld
Verifique el estado del servicio para asegurarse de que se inició:
systemctl status firewalld
Output● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago
Docs: man:firewalld(1)
Main PID: 13180 (firewalld)
Tasks: 2 (limit: 5059)
Memory: 22.4M
CGroup: /system.slice/firewalld.service
└─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
Tenga en cuenta que es tanto active
como enabled
, lo que significa que se iniciará de forma predeterminada si se reinicia el servidor.
Ahora que el servicio está en funcionamiento, podemos usar la firewall-cmd
utilidad para obtener y configurar información de políticas para el firewall.
Primero, enumeremos qué servicios ya están permitidos:
firewall-cmd --permanent --list-all
Outputpublic (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Para ver los servicios adicionales que puedes habilitar por nombre, escribe:
firewall-cmd --get-services
Para agregar un servicio que debe estar permitido, utilice la --add-service
bandera:
firewall-cmd --permanent --add-service=http
Esto añadiría el http
servicio y permitiría el tráfico TCP entrante al puerto 80
. La configuración se actualizará después de recargar el firewall:
firewall-cmd --reload
Recuerda que tendrás que abrir explícitamente el firewall (con servicios o puertos) para cualquier servicio adicional que puedas configurar más adelante.
Paso 5: Habilitar el acceso externo para su usuario habitual
Ahora que tenemos un usuario regular no root para uso diario, debemos asegurarnos de que podamos usarlo para acceder por SSH a nuestro servidor.
Nota: Hasta verificar que puede iniciar sesión y usar sudo
su nuevo usuario, le recomendamos mantener la sesión iniciada como root . De esta forma, si tiene problemas, podrá solucionarlos y realizar los cambios necesarios como root . Si usa un Droplet de DigitalOcean y experimenta problemas con su conexión SSH como root , puede iniciar sesión en el contenedor mediante la Consola de IsnHosting.
El proceso para configurar el acceso SSH para su nuevo usuario depende de si la cuenta raíz de su servidor utiliza una contraseña o claves SSH para la autenticación.
Si la cuenta raíz utiliza autenticación de contraseña
Si inició sesión en su cuenta raíz con una contraseña , la autenticación por contraseña está habilitada para SSH. Puede acceder a su nueva cuenta de usuario por SSH abriendo una nueva sesión de terminal y usando SSH con su nuevo nombre de usuario:
ssh sammy@your_server_ip
Después de ingresar tu contraseña de usuario habitual, iniciarás sesión. Recuerda, si necesitas ejecutar un comando con privilegios administrativos, escríbelo sudo
antes así:
sudo command_to_run
Se le solicitará su contraseña de usuario habitual sudo
la primera vez que utilice cada sesión (y periódicamente después).
Para mejorar la seguridad de su servidor, le recomendamos encarecidamente configurar claves SSH en lugar de usar autenticación con contraseña . Siga nuestra guía sobre cómo configurar claves SSH en Rocky Linux 8 para aprender a configurar la autenticación basada en claves.
Si la cuenta raíz utiliza autenticación de clave SSH
Si inició sesión en su cuenta raíz con claves SSH , la autenticación por contraseña estará deshabilitada . Deberá agregar una copia de su clave pública al ~/.ssh/authorized_keys
archivo del nuevo usuario para iniciar sesión correctamente.
Dado que su clave pública ya está en el archivo de la cuenta raíz~/.ssh/authorized_keys
en el servidor, podemos copiar esa estructura de archivos y directorios a nuestra nueva cuenta de usuario.
La forma más sencilla de copiar los archivos con la propiedad y los permisos correctos es con el rsync
comando. Esto copiará el directorio del usuario root.ssh
, conservará los permisos y modificará los propietarios de los archivos, todo con un solo comando. Asegúrese de cambiar las partes resaltadas del comando a continuación para que coincidan con el nombre de su usuario habitual:
Nota: El rsync
comando trata los orígenes y destinos que terminan con una barra diagonal final de forma diferente a aquellos que no la tienen. Al usarlo rsync
a continuación, asegúrese de que el directorio de origen ( ~/.ssh
) no incluya una barra diagonal final (verifique que no esté usando ~/.ssh/
).
Si añade accidentalmente una barra diagonal al comando, rsync
se copiará el contenido del directorio de la cuenta raíz~/.ssh
al sudo
directorio personal del usuario en lugar de copiar toda la ~/.ssh
estructura de directorios. Los archivos estarán en la ubicación incorrecta y SSH no podrá encontrarlos ni usarlos.
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
Ahora, de nuevo en una nueva terminal en su máquina local, abra una nueva sesión SSH con su usuario no root :
ssh sammy@your_server_ip
Debes haber iniciado sesión en la nueva cuenta de usuario sin usar contraseña. Recuerda, si necesitas ejecutar un comando con privilegios de administrador, escríbelo sudo
antes de la siguiente manera:
sudo command_to_run
Se le solicitará su contraseña de usuario habitual sudo
la primera vez que utilice cada sesión (y periódicamente después).
Conclusión
En este punto, ya tienes una base sólida para tu servidor. Puedes instalar cualquier software que necesites.