La seguridad es una consideración esencial para cualquier servidor que inicie en un entorno de producción. La última versión de Rocky Linux 8 viene con sólidas funciones de seguridad. Sin embargo, no todos están activos o configurados correctamente de forma predeterminada, por lo que una instalación nueva siempre es vulnerable a ataques de piratería e intrusión.
En esta guía, veremos algunas tareas importantes que se deben realizar en el servidor para la configuración inicial y el fortalecimiento básico del servidor.
Requisitos
- Un nuevo servidor Rocky Linux 8 en Atlantic.Net Cloud Platform
- Una contraseña de root configurada en su servidor
Paso 1:actualice su servidor
Antes de comenzar, inicie sesión en su servidor Rocky Linux 8 a través de SSH o la consola VNC que se encuentra aquí:https://cloud.atlantic.net/
Después de iniciar sesión, deberá instalar los últimos parches de seguridad y actualizaciones en su servidor. Ejecute el siguiente comando para actualizarlos.
dnf update -y
Los servidores de Atlantic.Net están configurados como instalaciones mínimas para evitar que se instalen paquetes innecesarios que no se utilicen. Puede instalar algunos paquetes de software básicos ejecutando el siguiente comando:
dnf install wget git curl bind-utils tree net-tools -y
Paso 2:cambie la contraseña raíz predeterminada
Cuando lanza un nuevo servidor, sus servidores se configuran automáticamente con contraseñas seguras. Sin embargo, se recomienda cambiar su contraseña raíz cada 60 a 90 días a partir de entonces para garantizar que permanezca segura. Debe crear una contraseña raíz con un mínimo de 8 caracteres, incluidos caracteres en minúsculas, caracteres en mayúsculas y números.
Puede cambiar la contraseña de root usando el siguiente comando:
passwd root
Paso 3:cree un nuevo usuario con privilegios sudo
Primero, cree un nuevo usuario con el siguiente comando:
adduser user1
A continuación, establezca la contraseña usuario1 con el siguiente comando:
passwd user1
Después de crear un nuevo usuario, deberá agregar este usuario al grupo de ruedas Sudo. En Rocky Linux 8, una vez que los agrega al grupo de ruedas sudo, se les asignan automáticamente permisos sudo/root.
Ejecute el siguiente comando para agregar al usuario al grupo de ruedas Sudo.
usermod -aG wheel user1
Una vez que haya creado el usuario con permisos sudo/root, inicie sesión en usuario1 con el siguiente comando:
su - user1
Una vez que haya iniciado sesión, ejecute el siguiente comando usando sudo:
sudo dnf update -y
Se le pedirá que proporcione la contraseña de usuario1 para actualizar su sistema.
Esto confirmará que su usuario sudo está funcionando como se esperaba.
Paso 4:deshabilite el inicio de sesión raíz a través de SSH
Ya creamos un usuario administrador con permisos sudo/root para realizar todas las tareas. No necesita mantener al usuario raíz disponible y vulnerable a través de SSH en su servidor, por lo que deberá desactivar el inicio de sesión raíz a través de SSH.
Edite el archivo de configuración principal de SSH con el siguiente comando:
sudo nano /etc/ssh/sshd_config
Busque la siguiente línea:
PermitRootLogin yes
Cámbielo a la siguiente línea:
PermitRootLogin no
Guarde y cierre el archivo, luego reinicie el servicio SSH para aplicar los cambios:
systemctl restart sshd
Paso 5:cambiar el puerto predeterminado de SSH
Para cambiar el puerto SSH, edite el archivo de configuración principal de SSH:
sudo nano /etc/ssh/sshd_config
Busque la siguiente línea:
#Port 22
Cámbielo a las siguientes líneas:
Port 2020
Guarde y cierre el archivo, luego reinicie el servicio SSH para aplicar los cambios:
systemctl restart sshd
Ahora puede iniciar sesión en su servidor de Atlantic de forma remota a través de SSH usando el siguiente comando:
ssh [email protected] -p 2020
Paso 6:configurar un cortafuegos
firewall-cmd --state
Debería ver que el cortafuegos no se está ejecutando:
not running
Se recomienda habilitar el firewall y habilitar los puertos necesarios para el acceso externo.
Primero, habilite el servicio firewalld con el siguiente comando:
systemctl start firewalld systemctl enable firewalld
Luego, permita el puerto SSH 2020 a través del firewall con el siguiente comando:
sudo firewall-cmd --permanent --add-port=2020/tcp
A continuación, vuelva a cargar el servicio firewalld para aplicar los cambios:
sudo firewall-cmd --reload
Ahora puede verificar los puertos agregados con el siguiente comando:
sudo firewall-cmd --list-ports
Debería ver el siguiente resultado:
2020/tcp
Si tiene algún servidor web instalado y ejecutándose en su servidor, es posible que deba permitir el servicio HTTP y HTTPS a través del firewall para acceder a él a través de Internet.
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https
Para permitir el acceso externo a los servicios POP3, IMAP y SMTP, ejecute el siguiente comando:
sudo firewall-cmd --permanent --add-service=pop3s sudo firewall-cmd --permanent --add-service=imaps sudo firewall-cmd --permanent --add-service=smtp
Paso 7:instale NTP para sincronización de tiempo
También se recomienda instalar un servidor NTP para sincronizar la hora y la fecha de las computadoras a través de la red para mantenerlas precisas y actualizadas.
Primero, instale el servidor NTP usando el siguiente comando:
sudo dnf install chrony -y
Una vez que el servicio NTP esté instalado, inícielo y habilítelo para que se inicie al reiniciar el sistema:
sudo systemctl start chronyd sudo systemctl enable chronyd
Ahora, su servidor NTP está instalado y actualizará constantemente la hora del servidor desde el servidor NTP.
Paso 8:deshabilite IPv6
Si no está utilizando IPv6, se recomienda desactivarlo por razones de seguridad.
Primero, verifique si IPv6 está habilitado en su instalación de Rocky Linux 8 usando el siguiente comando:
ip a | grep inet6
Debería ver las siguientes líneas si IPv6 está habilitado:
inet6 ::1/128 scope host inet6 fe80::200:d8ff:fe62:817/64 scope link inet6 fe80::200:aff:fe62:817/64 scope link
Deberá crear un nuevo archivo de configuración para deshabilitar IPv6:
sudo nano /etc/sysctl.d/70-ipv6.conf
Agregue las siguientes líneas:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Guarde y cierre el archivo, luego vuelva a cargar el archivo de configuración con el siguiente comando:
sudo sysctl --load /etc/sysctl.d/70-ipv6.conf
Debería ver el siguiente resultado:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Para verificar que IPv6 esté deshabilitado, ejecute el siguiente comando:
ip a | grep inet6
Si el comando no devuelve nada, ha confirmado que IPv6 se ha deshabilitado en todas sus interfaces de red.
Paso 9:crea un espacio de intercambio
Un intercambio es un espacio en un disco que se usa cuando la cantidad de memoria RAM física está llena. Cuando su servidor se queda sin RAM, todas las páginas inactivas se mueven de la RAM al espacio de intercambio.
Cuando lanza una nueva instancia en Atlantic.Net, no crea una partición de intercambio. Deberá crear un espacio de intercambio manualmente después de iniciar la nueva instancia.
En general, el espacio de intercambio debe ser la mitad de su RAM existente. Si tiene 1 GB de RAM real, deberá crear un archivo de 512 MB.
Primero, crea un espacio de intercambio (de 512 MB) con el siguiente comando:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288
Salida:
524288+0 records in 524288+0 records out 536870912 bytes (537 MB, 512 MiB) copied, 10.3523 s, 51.9 MB/s
Puede calcular el tamaño del bloque con la fórmula 1024 x 512 MB =524288.
Después de crear el espacio de intercambio, formatéelo con el siguiente comando:
sudo mkswap /swapfile
Salida:
mkswap: /swapfile: insecure permissions 0644, 0600 suggested. Setting up swapspace version 1, size = 512 MiB (536866816 bytes) no label, UUID=8981408a-549d-47aa-a99a-72870b65212d
A continuación, establezca los permisos adecuados en el /swapfile con el siguiente comando:
sudo chown root:root /swapfile sudo chmod 0600 /swapfile
A continuación, active el espacio de intercambio con el siguiente comando:
sudo swapon /swapfile
A continuación, verifique el espacio de intercambio con el siguiente comando:
swapon -s
Salida:
Filename Type Size Used Priority /swapfile file 524284 0 -2
A continuación, deberá agregar la entrada del archivo de intercambio a /etc/fstab para que esté activo incluso después de reiniciar.
nano /etc/fstab
Agregue la siguiente línea:
/swapfile swap swap defaults 0 0
Guarde y cierre el archivo, luego verifique el espacio de intercambio usando el siguiente comando:
free -m
Debería ver el siguiente resultado:
total used free shared buff/cache available Mem: 1817 263 100 68 1452 1329 Swap: 511 0 511
Conclusión
En la guía anterior, explicamos algunos pasos básicos para asegurar su servidor Rocky Linux 8. Ahora puede proceder a alojar cualquier aplicación en el entorno seguro:¡pruébelo en su cuenta de alojamiento VPS de Atlantic.Net!