Skip to content
This repository was archived by the owner on Feb 25, 2026. It is now read-only.

Latest commit

 

History

History
300 lines (200 loc) · 13.4 KB

File metadata and controls

300 lines (200 loc) · 13.4 KB

Introducción a Linux para Ciberseguridad

Linux es un sistema operativo (SO), al igual que Windows, macOS, iOS o Android. Un SO gestiona los recursos de hardware de una computadora y permite la comunicación entre aplicaciones y componentes físicos.

A diferencia de otros sistemas operativos, Linux es libre, de código abierto y cuenta con una gran cantidad de distribuciones (“distros”), adaptadas a diferentes necesidades (ejemplo: Ubuntu, Debian, Fedora, Manjaro, Parrot OS, etc.).

En ciberseguridad, Linux es un pilar por su robustez, flexibilidad y seguridad, siendo ampliamente usado en servidores, dispositivos embebidos, mainframes y sistemas móviles como Android.


Temario

Regresar a la guía principal


1. Historia

  • 1970: Ken Thompson y Dennis Ritchie (trabajaban en AT&T). ellos crean Unix.

  • 1977: Surge BSD (Berkeley Software Distribution), pero enfrenta problemas legales por usar código de AT&T.

  • 1983: Richard Stallman inicia el Proyecto GNU y crea la GPL (Licencia Pública General).

  • 1991: Linus Torvalds (estudiante Filandés) desarrolla el núcleo de Linux como proyecto personal, liberado como software libre.

  • Hoy: Linux cuenta con más de 23 millones de líneas de código y más de 600 distribuciones.

Ejemplos de distros populares: Ubuntu, Debian, Fedora, OpenSUSE, Manjaro, Gentoo, Red Hat, Linux Mint, Elementary y Parrot OS (enfocada en ciberseguridad).


2. Filosofía de Linux

Linux se basa en la simplicidad, modularidad y apertura. Su enfoque es crear herramientas pequeñas que realizan una tarea bien definida y que pueden combinarse.

Principios clave:

Principio Descripción
Everything is a file Todos los elementos del sistema (dispositivos, configuraciones, procesos) se gestionan como archivos.
Small, single-purpose programs Programas pequeños que hacen una sola cosa y la hacen bien.
Ability to chain programs together Se pueden combinar programas para tareas complejas (ejemplo: pipes).
Avoid captive user interfaces Se privilegia la terminal/shell en lugar de depender de interfaces gráficas.
Configuration data stored in text files Los archivos de configuración son simples archivos de texto (ejemplo: /etc/passwd).

3. Componentes de Linux

Componente Descripción
Bootloader Inicia el arranque del SO (ejemplo: GRUB).
Kernel (núcleo) Gestiona CPU, memoria y hardware.
Daemons Servicios en segundo plano (impresión, programación de tareas, etc.).
Shell Interfaz de línea de comandos (ejemplo: Bash, Zsh, Fish).
Graphics server Maneja gráficos y ventanas (ejemplo: servidor X).
Window Manager / GUI Entornos gráficos como GNOME, KDE, MATE.
Utilities Programas y herramientas para el usuario.

4. Arquitectura de Linux

Linux se organiza en capas:

  1. Hardware: CPU, RAM, disco, periféricos.

  2. Kernel: Controla y virtualiza el hardware.

  3. Shell: Intérprete de comandos (CLI).

  4. System Utilities: Herramientas y aplicaciones que interactúan con el sistema.


5. Jerarquía del Sistema de Archivos (FHS)

Linux organiza los archivos en una estructura en forma de árbol, con / como raíz.

Ruta Descripción
/ Raíz del sistema. Contiene lo necesario para arrancar.
/bin Binarios esenciales para el usuario.
/boot Archivos de arranque (kernel, GRUB).
/dev Archivos de dispositivos (discos, USBs).
/etc Configuración del sistema y aplicaciones.
/home Directorios personales de cada usuario.
/lib Bibliotecas compartidas necesarias para arrancar.
/media Punto de montaje para dispositivos externos.
/mnt Punto de montaje temporal.
/opt Software opcional de terceros.
/root Directorio personal del usuario root.
/sbin Binarios de administración del sistema.
/tmp Archivos temporales (se borran al reiniciar).
/usr Programas y utilidades de usuario.
/var Archivos variables (logs, correo, cron, etc.).

Analogía, imagina Linux como una empresa:

  • El kernel es la gerencia (organiza recursos).

  • Los daemons son empleados invisibles que mantienen todo funcionando.

  • El shell es la recepción, donde das órdenes.

  • La filosofía es la cultura de trabajo: simplicidad, eficiencia y cooperación.


6. Qué es comando?

Es un nombre que se coloca en la terminal, que ejecuta varias líneas de código.


7. Variables de entorno

son variables de datos por defecto en la terminal, puedes ver cuáles son con el comando "env".

"export name=data": Crear una variable de entorno con nombre "name" y valor "data". (Al reiniciar el sistema operativo se borra la variable.)

para visualizar puedes usar "echo $name". También puedes concatenar "name = $name:text" quedaría el texto de la variable name como "data:text"


8. Comandos de Linux

Categoría Comando Descripción Ejemplo
Navegación pwd Muestra la ruta actual. pwd
ls Lista los archivos del directorio. ls -la
cd Cambia de directorio. cd /home
Archivos y carpetas cat Muestra el contenido de un archivo. cat archivo.txt
cp Copia archivos o carpetas. cp file.txt /tmp/
mv Mueve o renombra archivos o carpetas. mv file.txt new.txt
rm Elimina archivos o carpetas. rm -rf carpeta
touch Crea un archivo vacío. touch nota.txt
mkdir Crea una carpeta. mkdir proyectos
rmdir Eliminar directorios vacíos. rmdir proyectos
heap -n 3 leer las primeras 3 líneas. heap -n 3
tail -n 3 leer las últimas 3 líneas. tail -n 3
tree Mostrar archivos y carpetas del directorio actual en forma de árbol. tree
Búsqueda find Busca archivos en el sistema. find / -name "contraseña.txt"
grep Busca texto dentro de archivos. grep "admin" archivo.txt
locate Busca rutas de archivos indexadas. locate passwd
Sistema whoami Muestra el usuario actual. whoami
uname -a Muestra información del sistema. uname -a
top o htop Muestra procesos activos. htop
ps aux Lista todos los procesos. ps aux grep apache
kill Detiene un proceso. kill 1234

Y muchos más comandos, y variaciones de los mismos...


9. Permisos y usuarios

En Linux, los permisos controlan quién puede leer, escribir o ejecutar un archivo. Cada archivo tiene permisos para:

  • Usuario (u) – propietario del archivo
  • Grupo (g) – grupo al que pertenece el usuario
  • Otros (o) – todos los demás usuarios

Ver permisos

ls -l

Salida típica:

-rwxr-xr--

Interpretación:

  • r → leer (read)
  • w → escribir (write)
  • x → ejecutar (execute)

→ Ejemplo anterior:

  • Usuario: rwx (leer, escribir, ejecutar)
  • Grupo: r-x (leer, ejecutar)
  • Otros: r-- (solo leer)

Cambiar permisos

chmod 755 archivo.sh
  • 7 → rwx
  • 5 → r-x (Esto da permisos completos al dueño, y solo lectura/ejecución al resto.)

Otra forma:

chmod u+x script.sh   # Dar permiso de ejecución al usuario
chmod g-w archivo.txt # Quitar permiso de escritura al grupo

Cambiar propietario

chown usuario:grupo archivo.txt

10. Sudo

El comando sudo en Linux y sistemas tipo Unix significa "superuser do" (hacer como superusuario). Básicamente, permite ejecutar comandos con privilegios de administrador, incluso si tu usuario normal no los tiene. Esto es útil porque algunas acciones (como instalar programas, modificar archivos del sistema o cambiar configuraciones importantes) requieren permisos elevados para proteger el sistema de cambios accidentales. Así funciona paso a paso:

1. Ejecutar un comando como administrador

Cuando escribes:

sudo comando

Linux hace lo siguiente:

  • Te pregunta la contraseña de tu usuario (no la del root) si no la has usado sudo recientemente.

  • Verifica que tu usuario esté en el archivo /etc/sudoers, que define quién puede usar sudo y qué comandos.

  • Si está permitido, ejecuta el comando con permisos de root, es decir, como si fueras el administrador del sistema.

2. Ejemplo práctico

sudo apt update
  • apt update actualiza la lista de paquetes en sistemas basados en Debian (Ubuntu, Mint, etc.).

  • Normalmente un usuario normal no puede cambiar la base de datos de paquetes.

  • sudo permite hacerlo porque ejecuta el comando con permisos de root.

3. Comando interactivo

Si escribes:

sudo -i

o

sudo su
  • Obtienes un shell de root, es decir, todos los comandos que escribas después se ejecutan con permisos de administrador.

  • Esto es más riesgoso porque cualquier error puede afectar gravemente el sistema.

4. Seguridad y tiempo de sesión

  • sudo recuerda tu contraseña durante unos minutos (por defecto 5) para que no tengas que escribirla cada vez.

  • Si tu usuario no está en sudoers, no podrás usarlo.


Listo quieres volver a la guía principal.

Regresar a la guía principal

Autor: Fravelz
Colaborador: @studentethical (Student Ethical)