Self-paced

Explore our extensive collection of courses designed to help you master various subjects and skills. Whether you're a beginner or an advanced learner, there's something here for everyone.

Bootcamp

Learn live

Join us for our free workshops, webinars, and other events to learn more about our programs and get started on your journey to becoming a developer.

Upcoming live events

Learning library

For all the self-taught geeks out there, here is our content library with most of the learning materials we have produced throughout the years.

It makes sense to start learning by reading and watching videos about fundamentals and how things work.

Search from all Lessons


LoginGet Started
← Back to Lessons
Weekly Coding Challenge

Every week, we pick a real-life project to build your portfolio and get ready for a job. All projects are built with ChatGPT as co-pilot!

Start the Challenge
Podcast: Code Sets You Free

A tech-culture podcast where you learn to fight the enemies that blocks your way to become a successful professional in tech.

Listen the podcast
  • linux

  • cybersecurity

Edit on Github

Introduction to Linux Security

Gestión de cuentas de usuario y contraseñas seguras
iptables
  • Instalacion de iptables

La seguridad es un aspecto fundamental en cualquier sistema operativo, y a medida que más personas y organizaciones utilizan Linux, es importante comprender los conceptos básicos de seguridad para proteger nuestros sistemas y datos.

  • Usuarios y permisos: En Linux, cada usuario tiene su propia cuenta y conjunto de permisos. Es importante crear cuentas de usuario separadas para cada persona que acceda al sistema y asignar los permisos adecuados. Los permisos determinan qué acciones pueden realizar los usuarios en archivos y directorios, como leer, escribir o ejecutar.
  • Contraseñas seguras: Es importante utilizar contraseñas seguras que sean difíciles de adivinar. Una contraseña segura debe tener una combinación de letras mayúsculas y minúsculas, números y caracteres especiales. Además, se recomienda cambiar las contraseñas periódicamente.
  • Actualizaciones del sistema: Mantener el sistema operativo Linux actualizado es esencial para garantizar la seguridad. Las actualizaciones del sistema incluyen parches de seguridad que corrigen vulnerabilidades conocidas. Es importante instalar regularmente las actualizaciones del sistema para protegerse contra posibles amenazas.
  • Firewall: Un firewall es una herramienta de seguridad que controla el tráfico de red entrante y saliente. Linux cuenta con un firewall incorporado llamado iptables, que permite configurar reglas para permitir o bloquear el tráfico según nuestras necesidades. Configurar un firewall adecuado puede ayudar a proteger el sistema contra ataques externos.
  • Antivirus y software de seguridad: Aunque Linux es menos susceptible a virus y malware en comparación con otros sistemas operativos, aún es importante utilizar software de seguridad, como antivirus y herramientas de detección de intrusiones. Estas herramientas pueden ayudar a identificar y eliminar amenazas potenciales.
  • Auditoría de seguridad: Realizar auditorías de seguridad periódicas es una buena práctica para identificar posibles vulnerabilidades en el sistema. Las auditorías de seguridad pueden incluir la revisión de registros de actividad, análisis de vulnerabilidades y pruebas de penetración. Estas actividades nos permiten detectar y corregir posibles problemas de seguridad antes de que sean explotados.

Gestión de cuentas de usuario y contraseñas seguras

Algunos aspectos que podemos tomar en cuenta para la gestión de cuentas de usuarios:

  • Creación de cuentas de usuario: En Linux, se pueden crear cuentas de usuario utilizando comandos como "useradd" o "adduser". Al crear una cuenta de usuario, es importante asignar un nombre de usuario único y una contraseña segura. Además, se pueden establecer otros detalles como el directorio de inicio y el grupo primario.
  • Contraseñas seguras: Es fundamental utilizar contraseñas seguras que sean difíciles de adivinar. Se recomienda utilizar una combinación de letras mayúsculas y minúsculas, números y caracteres especiales. Evita utilizar contraseñas obvias o información personal fácilmente accesible.
  • Políticas de contraseñas: Establecer políticas de contraseñas es una práctica recomendada para garantizar que los usuarios utilicen contraseñas seguras. Estas políticas pueden incluir requisitos como una longitud mínima de contraseña, la necesidad de cambiar las contraseñas periódicamente y la prohibición de reutilizar contraseñas antiguas. Estas políticas se pueden configurar en el archivo "/etc/login.defs" o utilizando herramientas de gestión de contraseñas como "pam_cracklib".
  • Autenticación de dos factores: La autenticación de dos factores (2FA) proporciona una capa adicional de seguridad al requerir un segundo método de verificación, además de la contraseña, para acceder a una cuenta. Esto ayuda a prevenir el acceso no autorizado incluso si la contraseña se ve comprometida.
  • Gestión de privilegios: Es importante asignar los privilegios adecuados a cada cuenta de usuario en Linux. No todos los usuarios necesitan tener acceso de administrador o privilegios de superusuario. Siguiendo el principio de "menos privilegios", se deben otorgar sólo los privilegios necesarios para realizar las tareas requeridas. Esto ayuda a limitar el impacto de posibles ataques o errores humanos.

Configuración de cortafuegos y protección de servicios

La configuración de un cortafuegos y la protección de servicios son aspectos fundamentales para garantizar la seguridad de un sistema. Estas medidas ayudan a prevenir accesos no autorizados y proteger los servicios que se ejecutan en el sistema. Aquí hay algunos conceptos clave a tener en cuenta:

  • Cortafuegos: Un cortafuegos es una barrera de seguridad que controla el tráfico de red entrante y saliente. Su objetivo principal es permitir o bloquear el tráfico según las reglas establecidas. En Linux, el cortafuegos más comúnmente utilizado es iptables. Permite configurar reglas para filtrar el tráfico basado en direcciones IP, puertos y protocolos.
  • Reglas del cortafuegos: Al configurar un cortafuegos, es importante definir reglas específicas para permitir o bloquear el tráfico. Por ejemplo, se pueden establecer reglas para permitir el acceso a servicios específicos, como SSH o HTTP, desde direcciones IP confiables. También se pueden bloquear puertos no utilizados o restringir el acceso a servicios sensibles.
  • Protección de servicios: Los servicios que se ejecutan en un sistema, como servidores web, bases de datos o servidores de correo electrónico, pueden ser objetivos de ataques. Para proteger estos servicios, se deben tomar medidas adicionales, como:
  • Mantener los servicios actualizados: Es importante aplicar regularmente las actualizaciones de seguridad para los servicios instalados. Esto ayuda a corregir vulnerabilidades conocidas y proteger contra ataques conocidos.
  • Configuración segura: Asegúrate de configurar los servicios de manera segura, siguiendo las mejores prácticas recomendadas. Esto incluye deshabilitar funciones innecesarias, establecer permisos adecuados en los archivos y directorios, y utilizar contraseñas seguras para las cuentas asociadas con los servicios.
  • Monitoreo y registro: Implementa herramientas de monitoreo y registro para supervisar la actividad de los servicios. Esto permite detectar posibles intrusiones o comportamientos anómalos y tomar medidas preventivas.
  • Limitar el acceso: Restringe el acceso a los servicios solo a las direcciones IP o rangos de IP necesarios. Esto ayuda a reducir la superficie de ataque y limitar la exposición a posibles amenazas.
  • Herramientas de seguridad adicionales: Además de un cortafuegos, existen otras herramientas de seguridad que se pueden utilizar para proteger los servicios en Linux. Por ejemplo, se pueden implementar sistemas de detección y prevención de intrusiones (IDS/IPS) para monitorear y bloquear actividades sospechosas. También se pueden utilizar herramientas de escaneo de vulnerabilidades para identificar posibles debilidades en los servicios.

iptables

iptables es una herramienta de firewall y filtrado de paquetes en sistemas Linux. Permite controlar y configurar las reglas de seguridad de red para proteger tu sistema y controlar el tráfico de red entrante y saliente. Con iptables, se puede definir reglas que determinen qué paquetes de red se permiten o bloquean en tu sistema. Estas reglas se basan en criterios como la dirección IP de origen o destino, el puerto de origen o destino, el protocolo utilizado y otras características de los paquetes. Las reglas de iptables se organizan en tablas, y cada tabla contiene cadenas de reglas. Las tablas más comunes son "filter", que se utiliza para filtrar paquetes, y "nat", que se utiliza para realizar traducción de direcciones de red (NAT). Dentro de cada tabla, hay diferentes cadenas predefinidas, como "INPUT" para el tráfico entrante, "OUTPUT" para el tráfico saliente y "FORWARD" para el tráfico que se reenvía a través del sistema. Puedes agregar reglas a estas cadenas para especificar qué hacer con los paquetes que coinciden con esas reglas, como aceptarlos, rechazarlos o redirigirlos.

Instalacion de iptables

  1. Verificar si iptables está instalado Para verificar si iptables ya está instalado en tu sistema, puedes ejecutar el siguiente comando en la terminal:

    1iptables --version

Si iptables está instalado, verás la versión del software. Si no está instalado, puedes pasar al siguiente paso.

  1. Instalar iptables La forma de instalar iptables puede variar según la distribución de Linux que estés utilizando. Aquí te mostraré cómo hacerlo en algunas distribuciones populares:
  • Ubuntu o Debian:

sudo apt-get update

sudo apt-get install iptables

  • CentOS o RHEL:

sudo yum install iptables

  1. Configurar iptables Una vez que iptables esté instalado, puedes comenzar a configurarlo según tus necesidades. iptables utiliza reglas para controlar el tráfico de red, por lo que deberás definir esas reglas. Puedes crear un archivo de configuración para iptables utilizando un editor de texto, como nano o vi. Por ejemplo:

sudo dnf install iptable

Dentro de este archivo, puedes agregar las reglas que deseas aplicar. Por ejemplo, para permitir el tráfico SSH entrante, puedes agregar la siguiente regla:

-A INPUT -p tcp --dport 22 -j ACCEPT

  1. Guardar y aplicar las reglas Una vez que hayas definido tus reglas, guarda el archivo de configuración y sal del editor de texto. Luego, puedes aplicar las reglas utilizando el siguiente comando:

sudo iptables-restore < /etc/iptables/rules.v4

Esto cargará las reglas desde el archivo de configuración y las aplicará en tu sistema.

  1. Verificar las reglas Puedes verificar las reglas de iptables utilizando el siguiente comando:

sudo iptables -L

Y eso es todo! Ahora tienes iptables instalado y configurado en tu sistema.