Configuración inicial del servidor con Rocky Linux 8

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 sammyusuario:

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 sudocomando. 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 sudoantes 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 sudocomando.

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 sudoantes 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] firewalldpara realizar esta función. firewall-cmdSe utiliza una herramienta llamada [nombre del servicio] para configurar firewalldlas 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 firewalldpermite sshconexiones, 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 activecomo 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-cmdutilidad 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-servicebandera:

firewall-cmd --permanent --add-service=http

Esto añadiría el httpservicio 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 sudosu 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 sudoantes así:

sudo command_to_run

Se le solicitará su contraseña de usuario habitual sudola 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_keysarchivo 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 rsynccomando. 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 rsynccomando trata los orígenes y destinos que terminan con una barra diagonal final de forma diferente a aquellos que no la tienen. Al usarlo rsynca 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, rsyncse copiará el contenido del directorio de la cuenta raíz~/.ssh al sudodirectorio personal del usuario en lugar de copiar toda la ~/.sshestructura 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 sudoantes de la siguiente manera:

sudo command_to_run

Se le solicitará su contraseña de usuario habitual sudola 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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post