¿Qué necesito?
- Un servidor Linux dedicado o VPS
- CentOS
¿Qué es el endurecimiento del sistema operativo?
Una vez que haya instalado CentOS, la protección contra el acceso no autorizado y los intrusos es lo segundo. “Más vale prevenir que curar”, dice el refrán, y eso no podría ser más exacto de lo que es ahora. Los actores malvados y los piratas informáticos intentan constantemente subvertir nuestros servidores o tomar el control de ellos. Es importante prevenir esto de la manera más eficaz posible.
- Configurar un cortafuegos
- Como administrador consciente y consciente de la seguridad, no debe permitir ningún tráfico de datos en su servidor web. De hecho, configurar un firewall es una de las tareas iniciales de configuración del servidor que un administrador del sistema debe realizar para abrir solo ciertos puertos y permitir los servicios actualmente en uso. De forma predeterminada, los sistemas CentOS 8 funcionan con Firewalld Cortafuegos, que se puede activar al inicio ejecutando los siguientes comandos:
sudo systemctl start firewalld sudo systemctl enable firewalld
- Para verificar los servicios permitidos en el firewall, simplemente ejecute los siguientes comandos:
sudo firewall-cmd --list all
- Luego abra un puerto en el firewall, es decir, el puerto 443:
sudo firewall-cmd --add-port=443/tcp --zone=public --permanent
- Luego active un servicio, p. Ej. B. ssh, ingrese:
sudo firewall-cmd --add-service=ssh --zone=public --permanent
- Para eliminar un puerto y / o un servicio, utilice los atributos -remove-port o -remove-service. Para que los cambios surtan efecto, siempre vuelva a cargar el firewall como se muestra:
sudo firewall-cmd --reload
- Deshabilitar servicios no utilizados / no deseados
- Siempre se recomienda deshabilitar los servicios no utilizados o innecesarios en su servidor web. Esto se debe a que cuanto mayor es la cantidad de servicios en ejecución, más puertos hay abiertos en su sistema que pueden ser explotados por un actor malintencionado para obtener acceso a sus sistemas. Además, debe evitar el uso de servicios antiguos e inseguros como Telnet, que envía el tráfico de datos en texto sin cifrar. Para ser honesto, esto es todo menos estúpido.
- Las mejores prácticas de seguridad recomiendan deshabilitar los servicios no utilizados y eliminar cualquier servicio no seguro que se esté ejecutando en su sistema. Puede usar la herramienta nmap para escanear su sistema y verificar qué puertos están abiertos y con errores.
- Proteger archivos críticos
- Es importante bloquear todos los archivos críticos para evitar la eliminación o edición accidental. Estos archivos incluyen el / etc / passwd y / etc / gshadowque contienen contraseñas con hash. Para asegurarse de que los archivos sean inmutables, es decir, que no se puedan modificar o eliminar accidentalmente, utilice el chattr Comando como se muestra:
sudo chattr +i /etc/passwd sudo chattr +i /etc/shadow
- Esto asegura que un actor malintencionado o pirata informático no pueda cambiar o eliminar las contraseñas de los usuarios, lo que resultará en la denegación del inicio de sesión en el sistema.
- Protocolo SSH seguro
- El protocolo SSH es un protocolo ampliamente utilizado para inicios de sesión remotos. De forma predeterminada, el protocolo tiene debilidades nativas que pueden ser explotadas por un pirata informático.
- De forma predeterminada, SSH permite que el usuario root inicie sesión de forma remota. Esta es una laguna potencial, y si un pirata informático puede obtener la contraseña de root para su sistema, su servidor es tan bueno como a merced. Para evitar que esto suceda, es aconsejable rechazar el inicio de sesión de root remoto y, en su lugar, crear un usuario de inicio de sesión regular con derechos sudo. Puede cambiar esto modificando el archivo de configuración SSH / etc / ssh / sshd_config y deshabilite el inicio de sesión de root como se muestra:
PermitRootLogin
- Otra forma de proteger SSH es configurar la autenticación SSH sin contraseña mediante claves SSH. En lugar de utilizar la autenticación de contraseña, que es propensa a ataques de fuerza bruta, se prefieren las claves SSH, ya que solo permiten a los usuarios con la clave ssh acceder al servidor remoto y bloquear a todos los demás usuarios. El primer paso para habilitar la autenticación sin contraseña es generar un par de claves con el siguiente comando:
ssh-keygen
- Esto genera un par de claves pública y privada. La clave privada reside en el host, mientras que la clave pública se copia en el sistema o servidor remoto. Una vez que se ha copiado el par de claves ssh, puede iniciar sesión en el sistema remoto sin que se le solicite una contraseña. A continuación, desactive la autenticación de contraseña modificando el archivo de configuración / etc / ssh / sshd_config y estableciendo este valor:
PasswordAuthentication no
- Recuerde reiniciar el servicio SSH para que los cambios surtan efecto:
sudo systemctl restart sshd
Próximos pasos
Realmente, todavía queda un largo camino por recorrer para proteger su servidor web Linux. Recomendaría definir umbrales para los intentos de contraseña y configurar un sistema de prevención de intrusiones y, por supuesto, recordar mantener estas actualizaciones y actualizaciones al día.
Conclusión
Esté atento a futuros artículos relacionados con esto que le brindarán más consejos y trucos útiles para asegurarse de que está protegiendo adecuadamente sus servidores y hosting web.