LFCA: Consejos básicos de seguridad para proteger el sistema Linux - Parte 17


Ahora más que nunca, vivimos en un mundo en el que las organizaciones son bombardeadas constantemente por brechas de seguridad motivadas por la adquisición de datos altamente sensibles y confidenciales que son muy valiosos y representan una gran recompensa financiera.

Es bastante sorprendente que, a pesar de tener un alto riesgo de sufrir un ciberataque potencialmente devastador, la mayoría de las empresas no estén bien preparadas o simplemente pasen por alto las señales de alerta, a menudo con consecuencias devastadoras.

En 2016, Equifax sufrió una brecha de datos catastrófica en la que se robaron millones de registros de clientes altamente confidenciales después de una serie de fallas de seguridad. Un informe detallado indicó que la violación se podía prevenir si el equipo de seguridad de Equifax hubiera implementado las medidas de seguridad adecuadas.

De hecho, meses antes de la violación, Equifax fue advertido sobre una posible vulnerabilidad en su portal web que comprometería su seguridad, pero lamentablemente, la advertencia no fue atendida con graves consecuencias. Muchas otras grandes corporaciones han sido víctimas de ataques, que continúan creciendo en complejidad con cada momento que pasa.

No podemos enfatizar lo suficiente lo crucial que es la seguridad de su sistema Linux. Puede que no sea una institución financiera de alto perfil que sea un objetivo potencial de infracciones, pero eso no significa que deba bajar la guardia.

La seguridad debe estar en la parte superior de su mente al configurar su servidor Linux, especialmente si estará conectado a Internet y se accederá a él de forma remota. Tener habilidades básicas de seguridad es esencial para proteger su servidor Linux.

En esta guía, nos enfocamos en algunas de las medidas de seguridad básicas que puede tomar para proteger su sistema de intrusos.

Vectores de ataque cibernético

Los intrusos aprovecharán una variedad de técnicas de ataque para acceder a su servidor Linux. Antes de profundizar en algunas de las medidas que puede tomar para proteger su sistema, explotemos algunos de los vectores de ataque comunes que un hacker puede usar para infiltrarse en los sistemas.

Un ataque de fuerza bruta es un ataque en el que el pirata informático utiliza prueba y error para adivinar las credenciales de inicio de sesión del usuario. Por lo general, el intruso utilizará scripts automatizados para obtener acceso de forma continua hasta que obtenga la combinación correcta de nombre de usuario y contraseña. Este tipo de ataque es más eficaz cuando se utilizan contraseñas débiles y fáciles de adivinar.

Como se mencionó anteriormente, las credenciales débiles, como contraseñas cortas y fáciles de adivinar, como password1234, representan un riesgo potencial para su sistema. Cuanto más corta y menos compleja sea una contraseña, mayores serán las posibilidades de que su sistema se vea comprometido.

El phishing es una técnica de ingeniería social en la que el atacante envía a la víctima un correo electrónico que parece provenir de una institución legítima o de alguien que conoce o con quien hace negocios.

Por lo general, el correo electrónico contiene instrucciones que instan a la víctima a divulgar información confidencial o puede contener un enlace que la dirige a un sitio falso que se hace pasar por el sitio de la empresa. Una vez que la víctima intenta iniciar sesión, el atacante captura sus credenciales.

Malware es la abreviatura de software malicioso. Abarca una amplia gama de aplicaciones nefastas, como virus, troyanos, gusanos y ransomware, que están diseñadas para propagarse rápidamente y mantener como rehén el sistema de la víctima a cambio de un rescate.

Dichos ataques pueden debilitar y paralizar el negocio de una organización. Algunos programas maliciosos pueden inyectarse en documentos como imágenes, videos, documentos de Word o PowerPoint y empaquetarse en un correo electrónico de phishing.

Un ataque DoS es un ataque que limita o afecta la disponibilidad de un servidor o sistema informático. El pirata informático inunda el servidor con tráfico o paquetes de ping que hacen que el servidor sea inaccesible para los usuarios durante períodos prolongados.

Un ataque DDoS (denegación de servicio distribuido) es un tipo de DoS que emplea múltiples sistemas que inundan un objetivo con tráfico que lo deja no disponible.

Un acrónimo de Structured Query Language, SQL es un lenguaje utilizado para comunicarse con bases de datos. Permite a los usuarios crear, eliminar y actualizar registros en la base de datos. Muchos servidores almacenan datos en bases de datos relacionales que utilizan SQL para interactuar con la base de datos.

Un ataque de inyección SQL aprovecha una vulnerabilidad SQL conocida que hace que el servidor divulgue información confidencial de la base de datos que de otra manera no haría al inyectar código SQL malicioso. Esto representa un riesgo enorme si la base de datos almacena información de identificación personal, como números de tarjetas de crédito, números de seguro social y contraseñas.

Comúnmente abreviado como MITM, el ataque man-in-the-middle involucra a un atacante que intercepta información entre dos puntos con el objetivo de espiar o modificar el tráfico entre las dos partes. El objetivo es espiar a la víctima, corromper los datos o robar información confidencial.

Consejos básicos para proteger su servidor Linux

Habiendo analizado las posibles puertas de enlace que un atacante puede utilizar para violar su sistema, repasemos algunas de las medidas fundamentales que puede tomar para proteger su sistema.

No se piensa mucho en la ubicación física y la seguridad de su servidor, sin embargo, si va a tener su servidor en un entorno local, generalmente es por donde debe comenzar.

Es importante asegurarse de que su servidor esté protegido de forma segura en un centro de datos con energía de respaldo, conectividad a Internet redundante y suficiente refrigeración. El acceso al centro de datos debe limitarse únicamente al personal autorizado.

Una vez configurado el servidor, el primer paso a seguir es actualizar los repositorios y los paquetes de software de la aplicación de la siguiente manera. La actualización del paquete corrige las lagunas que pudieran presentarse en las versiones existentes de las aplicaciones.

Para distribuciones de Ubuntu/Debian:

$ sudo apt update -y
$ sudo apt upgrade -y

Para distribuciones RHEL/CentOS:

$ sudo yum upgrade -y

Un firewall es una aplicación que filtra el tráfico entrante y saliente. Necesita instalar un firewall robusto como el firewall UFW y habilitarlo para permitir solo los servicios requeridos y sus puertos correspondientes.

Por ejemplo, puede instalarlo en Ubuntu usando el comando:

$ sudo apt install ufw

Una vez instalado, habilítelo de la siguiente manera:

$ sudo ufw enable

Para permitir un servicio como HTTPS, ejecute el comando;

$ sudo ufw allow https

Alternativamente, puede permitir su puerto correspondiente que es 443.

$ sudo ufw allow 443/tcp

Luego, vuelva a cargar para que los cambios surtan efecto.

$ sudo ufw reload

Para verificar el estado de su firewall, incluidos los servicios permitidos y los puertos abiertos, ejecute

$ sudo ufw status

Además, considere desactivar cualquier servicio y puerto innecesario o no utilizado en el firewall. Tener varios puertos que no se utilizan solo aumenta el panorama de ataques.

La configuración predeterminada de SSH no es segura y, por lo tanto, se requieren algunos ajustes. Asegúrese de aplicar las siguientes configuraciones:

  • Inhabilite el inicio de sesión remoto del usuario root.
  • Habilite la autenticación SSH sin contraseña mediante claves SSH públicas/privadas.

Para el primer punto, edite el archivo/etc/ssh/sshd_config y modifique los siguientes parámetros para que aparezcan como se muestra.

PermitRootLogin no

Una vez que deshabilite al usuario root para que no inicie sesión de forma remota, cree un usuario normal y asigne privilegios de sudo. Por ejemplo.

$ sudo adduser user 
$ sudo usermod -aG sudo user 

Para habilitar la autenticación sin contraseña, primero diríjase a otra PC con Linux, preferiblemente su PC y genere un par de claves SSH.

$ ssh-keygen

Luego copie la clave pública a su servidor

$ ssh-copy-id [email protected]

Una vez que haya iniciado sesión, asegúrese de deshabilitar la autenticación de contraseña editando el archivo/etc/ssh/sshd_config y modificando el parámetro que se muestra.

PasswordAuthentication no

Tenga cuidado de no perder su clave privada ssh, ya que es la única vía que puede utilizar para iniciar sesión. Manténgala segura y, preferiblemente, haga una copia de seguridad en la nube.

Finalmente, reinicie SSH para efectuar los cambios.

$ sudo systemctl restart sshd

En un mundo con amenazas cibernéticas en evolución, la seguridad debe ser una alta prioridad a medida que se embarca en la configuración de su servidor Linux. En esta guía, hemos destacado algunas de las medidas de seguridad básicas que puede tomar para fortalecer su servidor. En el siguiente tema, profundizaremos y veremos los pasos adicionales que puede tomar para fortalecer su servidor.