Búsqueda de sitios web

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


Ahora más que nunca vivimos en un mundo donde las organizaciones son bombardeadas constantemente por violaciones de seguridad motivadas por la adquisición de datos altamente sensibles y confidenciales que son muy valiosos y generan una enorme recompensa financiera.

Es bastante sorprendente que, a pesar de correr 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 filtración de datos catastrófica en la que se robaron millones de registros de clientes altamente confidenciales tras una serie de fallos de seguridad. Un informe detallado indicó que la infracció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 escuchada con graves consecuencias. Muchas otras grandes corporaciones han sido víctimas de ataques, cuya complejidad continúa creciendo 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 ser una prioridad al configurar su servidor Linux, especialmente si estará conectado a Internet y se accederá a él de forma remota. Tener conocimientos básicos de seguridad es esencial para proteger su servidor Linux.

En esta guía, nos centramos 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, aprovechemos algunos de los vectores de ataque comunes que un pirata informático puede utilizar para infiltrarse en los sistemas.

1. Ataques de fuerza bruta

Un ataque de fuerza bruta es un ataque en el que el hacker utiliza prueba y error para adivinar las credenciales de inicio de sesión del usuario. Por lo general, el intruso utilizará scripts automatizados para ingresar continuamente hasta obtener 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.

2. Credenciales débiles

Como se mencionó anteriormente, las credenciales débiles, como contraseñas cortas y fáciles de adivinar, como contraseña1234, 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.

3. Phishing

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 usted conoce o con quien hace negocios.

Por lo general, el correo electrónico contiene instrucciones que solicitan a la víctima que divulgue 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.

4. Programa malicioso

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.

Estos ataques pueden ser debilitantes y paralizar el negocio de una organización. Algunos programas maliciosos pueden inyectarse en documentos como imágenes, vídeos, documentos de Word o PowerPoint y empaquetarse en un correo electrónico de phishing.

5. Ataques de denegación de servicio (DoS)

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 hace no disponible.

6. Ataque de inyección SQL

Acrónimo de Lenguaje de consulta estructurado, 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 otro modo no divulgaría mediante la inyección de código SQL malicioso. Esto plantea 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.

7. Ataque del hombre en el medio

Comúnmente abreviado como MITM, el ataque de intermediario implica que un atacante intercepte 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 sensible.

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 salvaguardar su sistema.

1. Seguridad física

No se presta mucha atención a la ubicación física y la seguridad de su servidor; sin embargo, si va a tener su servidor en un entorno local, este es normalmente el punto de partida.

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 refrigeración suficiente. El acceso al centro de datos debe limitarse únicamente al personal autorizado.

2. Actualice los repositorios y paquetes de su sistema

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 cualquier laguna que pueda presentarse en las versiones existentes de las aplicaciones.

Para distribuciones Ubuntu/Debian:

sudo apt update -y
sudo apt upgrade -y

Para distribuciones RHEL/CentOS:

sudo yum upgrade -y

3. Habilite un firewall

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

Por ejemplo, puedes 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

4. Apague todos los servicios/puertos innecesarios

Además, considere desactivar todos los servicios y puertos no utilizados o innecesarios en el firewall. Tener varios puertos que no se utilizan sólo aumenta el panorama de ataques.

5. Protocolo SSH seguro

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

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

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 inhabilite al usuario root para que no inicie sesión de forma remota, cree un usuario normal y asígnele privilegios 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 user@server-IP

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
Resumen

En un mundo con amenazas cibernéticas en evolución, la seguridad debe ser una alta prioridad al momento de configurar 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 pasos adicionales que puede seguir para fortalecer su servidor.