Bienvenidos a este capítulo de este Curso de Linux para Hackers – Rutas y configuraciones. Comparte este articulo y síguenos para recibir más capítulos, guías y cursos gratis.

Esta guía es parte de un curso mucho más grande en donde te enseñamos a convertirte en hacker de 0 a 100. Desde los conocimientos más básicos hasta conseguir empleo.

En esta guía veremos desde cero un tema tan amplio como es Linux y lo haremos desde el punto de vista del hacking y la ciberseguridad.

Para saber más comente a continuación, respondemos todos y cada uno de los comentarios.

Índice

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Rutas y configuraciones

En el mundo de Linux, el control sobre el sistema, la personalización de su funcionamiento, y la forma en que interactúa con los usuarios y aplicaciones dependen fuertemente de cómo manejamos las rutas y configuraciones.

Entender estas rutas y los archivos que gobiernan la configuración de tu sistema es esencial para cualquier usuario avanzado o administrador.

En este artículo exploraremos en profundidad las rutas más comunes, los archivos de configuración clave y las mejores prácticas para modificar estas configuraciones sin arriesgar la estabilidad del sistema.

Estructura básica de directorios en Linux

Una de las primeras cosas que debes entender es la estructura de directorios en Linux. Todo en Linux se organiza en forma de un árbol de directorios. A diferencia de Windows, donde las unidades están separadas, Linux usa un único directorio raíz (/) a partir del cual todo lo demás está montado.

Aquí te explico las rutas más importantes:

La barra inclinada “/” – Directorio raíz

Toda la estructura de directorios en los sistemas basados en UNIX parte de un directorio raíz, también llamado directorio root, y que se simboliza por una barra inclinada o /. De este directorio, es desde donde nacen todo el resto de directorios, independientemente que estén almacenados físicamente en discos o unidades separadas.

El directorio raíz es la base del sistema de archivos. Todas las demás rutas cuelgan de este directorio. Aquí es donde comienza todo. Nunca deberías guardar archivos de usuario directamente en /.

Cualquier dirección de archivo o carpeta en Linux empieza por el directorio raíz o /, seguido de todos los directorios y subdirectorios que lo contienen, separados cada uno de ellos por /. A continuación se conocerá con más en detalle a todos los directorios principales que parten del directorio raíz, junto con sus subdirectorios más importantes y los archivos que suelen contener.

Con el comando “ls” dentro de la consola, se puede listar directorios, pero para llegar al directorio raíz, hay que utilizar el parámetro “cd /”

/bin

El directorio /bin es un directorio estático y es donde se almacenan todos los binarios necesarios para garantizar las funciones básicas a nivel de usuario. Solo almacena los ejecutables de usuario, ya que los binarios necesarios para tareas administrativas gestionadas por el usuario root o superusuario del sistema se encuentran en el directorio /sbin.

Incluye también los binarios que permiten la ejecución de varias utilidades estándar de la terminal de Linux, concretamente cat, cd, cp, echo, grep, gzip, kill, ls, mv, rm, ping, su, ps, tar y vi.

/boot

Este directorio contiene todo lo relacionado con el proceso de arranque del sistema, incluyendo el núcleo (kernel) y el gestor de arranque, como GRUB. Es crítico para que el sistema inicie.

Es un directorio estático e incluye todos los ejecutables y archivos que son necesarios en el proceso de arranque del sistema, y que deberán ser utilizados antes que el kernel empiece a dar las órdenes de ejecución de los diferentes módulos del sistema. En algunas distribuciones, es común que ese directorio se almacene en su propia partición separada del resto.

Esto suele darse sobre todo en el caso de de que utilicen LVM (Logical Volume Manager) por defecto, ya que tradicionalmente el gestor de arranque GRUB (en versiones anteriores a la 2) no podía arrancar desde LVM, por lo que se requería que estuviera en una partición separada.

De hecho, si en una instalación normal de Ubuntu o Debian optas por utilizar LVM, verás que el instalador ya te genera un esquema de particiones con el directorio boot en una partición aparte.

En estos casos, en el momento de instalar el sistema es importante prever bien el espacio que le vayas a dar a la partición, ya que a la larga, con la acumulación de diferentes actualizaciones del Kernel, es común que se quede sin espacio. Si esto sucede, puedes tener problemas a la hora de instalar futuras actualizaciones del núcleo, y debas hacer limpieza de versiones antiguas del kernel.

/dev

Aquí es donde Linux trata a los dispositivos como archivos. Contiene archivos de dispositivo que representan componentes del hardware (discos, USB, etc.). Por ejemplo, /dev/sda representa el primer disco duro.

Este directorio incluye todos los dispositivos de almacenamiento, en forma de archivos, conectados al sistema, es decir, cualquier disco duro conectado, partición, memoria USB, o CDROM conectado al sistema y que el sistema pueda entender como un volumen lógico de almacenamiento. Siendo esto así, verán que la ruta en la que se encuentra cualquier volumen (partición o dispositivo externo) conectado al sistema siempre empieza por /dev.

Este es el directorio que contiene, por decirlo de algún modo, la información de cada uno de los volúmenes, a diferencia del directorio /media que lo que contiene son solo los puntos de montaje, pero no la  información real de estos volúmenes. Para ver esto en la práctica, si se abre una ventana de terminal y se ejecuta el comando “fdisk –l” (como super usuario), se visualizará la estructura de particiones de tu sistema. Eso en cuanto a particiones. Si se trata de un dispositivo externo, el volumen estará igualmente dentro de /dev, pero en este caso varía el nombre que el sistema le asigna a dicho volumen.

/etc

Este es uno de los directorios más importantes para la administración del sistema. Contiene la mayoría de los archivos de configuración del sistema, como los scripts de inicio, configuraciones de red y configuraciones de programas instalados.

Es el encargado de almacenar los archivos de configuración tanto a nivel de componentes del sistema operativo en sí, como de los programas y aplicaciones instaladas a posteriori. Es un directorio que debería contener únicamente archivos de configuración, y no debería contener binarios.

Archivos de configuración del sistema: 

Archivos de configuraciónDescripción
/etc/bashrcLo utiliza el shell bash que contiene valores predeterminados y alias del sistema.
/etc/crontabUn script de shell para ejecutar comandos específicos en un intervalo de tiempo predefinido.
/etc/exportaciones Contiene información sobre el sistema de archivos disponible en la red.
/etc/fstabInformación de la unidad de disco y su punto de montaje.
/etc/grupo Es un archivo de texto para definir Información del Grupo de Seguridad.
/etc/grub.confEs el archivo de configuración del gestor de arranque grub.
/etc/init.d Script de inicio del servicio.
/etc/lilo.conf  Contiene el archivo de configuración del gestor de arranque lilo.
/etc/hostsInformación de IP y nombres de host correspondientes
/etc/hosts.permitirContiene una lista de hosts a los que se les permite acceder a servicios en la máquina local.
/etc/host.denegar Lista de hosts a los que se les ha denegado el acceso a servicios en la máquina local.
/etc/inittab Proceso INIT y su interacción en los distintos niveles de ejecución.
/etc/problemaPermite editar el mensaje previo al inicio de sesión.
/etc/modules.confContiene los archivos de configuración de los módulos del sistema.
/etc/motd Contiene el mensaje del día.
/etc/mtab Información de bloques montados actualmente.
/etc/contraseña  Contiene nombre de usuario, contraseña del sistema y usuarios en un archivo shadow.
/etc/imprimircap  Contiene información de la impresora.
/etc/perfil Valores predeterminados del shell Bash.
/etc/perfil.dContiene otros scripts, como scripts de aplicación, que se ejecutan después de iniciar sesión.
/etc/rc.d Evita la duplicación de scripts.
/etc/rc.d/init.d Ejecutar script de inicialización de nivel.
/etc/resolv.confDNS utilizado por el sistema.
/etc/seguridad Contiene el nombre de las terminales donde es posible iniciar sesión como root.
/etc/skelScript que inicia el nuevo directorio de inicio del usuario.
/etc/termcapUn archivo ASCII que define el comportamiento de los diferentes tipos de terminal.
/etc/X11El árbol de directorios contiene todos los archivos de configuración para el sistema X-window.

/home

Es el directorio de los usuarios estándar, y por lo tanto, el destinado a almacenar todos los archivos del usuario, como documentos, fotos, vídeos, música, plantillas, etc. También incluye archivos temporales de aplicaciones ejecutadas en modo usuario, que sirven para guardar las configuraciones de programas, etc. Dentro /home están los directorios personales de todos los usuarios, nombrados según el nombre de usuario utilizado.

Cada directorio de usuario contiene asimismo diferentes carpetas para ayudarlo a clasificar la información. Estas generalmente son: /Documentos, /Imágenes, /Música, /Plantillas y /Vídeos /, así como otros archivos y carpetas ocultas, que son los  encargados de guardar la información de configuraciones de las aplicaciones del usuario. Por cierto, y muy importante, todas los archivos y carpetas ocultas en Linux empiezan por un punto, seguido del nombre de la carpeta.

En muchas distribuciones es una práctica recomendada el hecho de ubicar el directorio /home es una partición separada del resto, por tal de facilitar que, en caso de reinstalar el sistema operativo, puedas mantener intacta la partición de la /home, y de este modo mantener todos los archivos personales.

El Directorio Home

En la mayoría de las distribuciones de Linux hay un directorio llamado home bajo el directorio root: /home. Bajo de este directorio /home hay un directorio para cada usuario del sistema. El nombre del directorio será el mismo que el nombre del usuario, por lo que un usuario llamado «carlos» tendría un directorio home llamado /home/carlos.

Tu directorio home es un directorio muy importante. Para empezar, cuando abres un shell automáticamente te ubicarás en tu directorio home, en donde harás la mayor parte de tu trabajo.

El directorio home es uno de los pocos directorios donde tienes el control total para crear y eliminar los archivos adicionales. La mayor parte de otros directorios en un sistema de archivos de Linux están protegidos con file permissions.

En la mayoría de las distribuciones de Linux, los únicos usuarios que pueden acceder a los archivos en tu directorio home eres tú y el administrador del sistema (el usuario root). Esto se puede cambiar utilizando los permisos de archivo.

Tu directorio tiene incluso un símbolo especial que puedes usar para representarlo: ~. Si tu directorio home es /home/sysadmin, puedes simplemente introducir ~ en la línea de comandos en lugar de /home/sysadmin. También puedes referirte al directorio home de otro usuario usando la notación ~usuario, donde usuario es el nombre de la cuenta de usuario cuyo directorio home quieres consultar. Por ejemplo, ~carlos sería igual a /home/carlos.

Ten en cuenta que una lista revela los subdirectorios contenidos en el directorio home. Cambiar directorios requiere atención al detalle. En los entornos de Linux son sensibles a mayúsculas y minúsculas. Cambiarnos al directorio Downloads requiere que la ortografía sea correcta – incluyendo la letra D mayúscula.

/lib

Incluye las bibliotecas esenciales que son necesarios para que se puedan ejecutar correctamente todos los binarios que se encuentran en los directorios /bin y /sbin, así como los módulos del propio kernel. En los sistemas operativos de 64 bits, además de /lib existe otro directorio denominado /lib64, referida a las bibliotecas para aplicaciones de 64 bits.

/media

Representa el punto de montaje de todos los volúmenes lógicos que se montan temporalmente, ya sean unidades externas USB, otras particiones de disco, etc. En la mayoría de distribuciones Linux, desde hace ya algún tiempo, cada vez que se monta una unidad externa, partición, etc.,esta se monta dentro del directorio /media y a su vez dentro de un directorio especifico dependiendo del usuario del sistema que monta el volumen.

/mnt

Es un directorio vacío que cumple funciones similares a /media, pero que actualmente no se suele utilizar, ya que la mayoría de distribuciones hacen uso de este último para los puntos de montaje temporales.

/opt

Algunos programas de terceros se instalan en /opt. Suele utilizarse para software adicional que no proviene directamente del gestor de paquetes de la distribución.

Vendría a ser como una extensión del directorio /usr, pero en este caso van todos aquellos archivos de solo lectura que son parte de programas auto-contenidos y que, por lo tanto, no siguen los estándares de almacenar los diferentes archivos dentro de los diferentes subdirectorios de /usr (que sería lo recomendable) Haciendo una analogía con Windows, vendría a ser algo como el directorio de “Archivos y Programas”, pero en este caso para determinados programas que ya vienen autocontenidos.

/proc

Este directorio contiene información de los procesos y aplicaciones que se están ejecutando en un momento determinado en el sistema, pero realmente no guarda nada como tal, ya que lo que almacena son archivos virtuales, por lo que el contenido de este directorio es nulo. Básicamente son listas de eventos del sistema operativo que se generan en el momento de acceder a ellos, y que no existen dentro del directorio como tales.

Archivos relacionados con procesos virtuales y pseudoprocesos:

Archivos relacionados con procesos virtuales y pseudoprocesosDescripciones
/proc/infocpuInformación de la CPU
/proc/sistemas de archivosMantiene información útil sobre los procesos que se están ejecutando actualmente.
/proc/interrupciones Mantiene la información sobre el número de interrupciones por IRQ.
/proc/ioportsContiene todas las direcciones de entrada y salida utilizadas por los dispositivos en el servidor
/proc/infomemInforma la información del uso de la memoria.
/proc/módulosActualmente utilizando el módulo del kernel.
/proc/montajeInformación del sistema de archivos montado.
/proc/estadísticaMuestra las estadísticas detalladas del sistema actual.
/proc/intercambios Contiene información del archivo de intercambio.

/root

Vendría a ser como el directorio /home del usuario root o superusuario del sistema. A diferencia de los otros usuarios, que se encuentran todos dentro de /home en sus respectivas subcarpetas, el directorio del usuario root está en su propia carpeta colgando directamente de la raíz del sistema. Como es de esperarse solamente el usuario root puede ver su contenido y modificarlo.

/sbin

Si hemos dicho que en /bin se almacenaban los binarios relativos a las funciones normales de usuario, /sbin hace lo mismo pero para los binarios relativos tareas propias del sistema operativo, y que solamente pueden ser gestionadas por el usuario root, tales como el arranque, tareas de restauración, reparación, etc.

/srv

Sirve para almacenar archivos y directorios relativos a servidores que puedas tener instalados dentro de tu sistema, ya sea un servidor web www, un servidor FTP, CVS, etc. Así, por ejemplo, en el caso de tener instalado un servidor web, sería buena idea tener el directorio web público dentro de /srv.

/sys

Al igual que /proc, contiene archivos virtuales que proveen información del kernel relativa a eventos del sistema operativo. Es en cierto modo una evolución de /proc, y a diferencia de este último, los archivos se distribuyen de forma jerárquica.

/tmp

Sirve para almacenar archivos temporales de todo tipo, ya sea de elementos del sistema, o también de diferentes aplicaciones a nivel de usuario. Es un directorio dispuesto para almacenar contenido de corta duración, de hecho en la gran mayoría de los casos se suele vaciar de forma automática en cada reinicio del sistema.

Aun así, no deben borrar su contenido de forma manual, puesto que puede contener archivos necesarios para ciertos programas o procesos que estén ejecutándose. Las aplicaciones programadas para almacenar archivos en este directorio deben asumir que solo serán recuperables en la sesión actual.

En este sentido, hay otro subdirectorio, /var/tmp, dispuesto igualmente para el almacenamiento de archivos temporales, pero cuyo contenido no se borra de forma automática tras el reinicio del sistema.

/usr

User System Resources sirve para almacenar todos los archivos de solo lectura y relativos a las utilidades de usuario, incluyendo todo el software instalado a través de los gestores de paquetes de cada distribución. Antiguamente /usr también contenía la carpeta particular de usuario, junto con todos sus documentos, vídeos, fotos, etc., pero más adelante se creó el directorio /home para este propósito, dejando /usr reservado para los archivos relativos a programas.

Archivos relacionados con el usuario:

Archivos relacionados con el usuarioDescripciones
/usr/bin Contiene la mayoría de los archivos ejecutables.
/usr/bin/X11 Enlace simbólico de /usr/bin.
/usr/incluir Contiene archivos estándar utilizados por el programa C.
/usr/compartirContiene archivos de texto compartibles independientes de la arquitectura.
/usr/lib Contiene archivos de objetos y bibliotecas.
/usr/sbinContiene comandos para Super Usuario, para Administración del Sistema.

/var

Aquí se guardan los datos que cambian con el tiempo, como registros del sistema (/var/log), archivos de bases de datos, colas de correo, y mucho más.

Contiene varios archivos con información del sistema, como archivos de logs, emails de los usuarios del sistema, bases de datos, información almacenada en la caché, información relativa a los paquetes de aplicaciones almacenados en /opt, etc. En cierto modo se podría decir que actúa a modo de registro del sistema.

Archivos de configuración esenciales

2.1. /etc/fstab

Este archivo controla la forma en que los sistemas de archivos se montan durante el arranque. Aquí se especifican los discos y particiones que el sistema debe montar automáticamente y en qué puntos de montaje.

Ejemplo de entrada en /etc/fstab:

/dev/sda1   /   ext4   defaults   0 1

Este ejemplo monta la partición /dev/sda1 en el directorio raíz usando el sistema de archivos ext4.

2.2. /etc/hosts

Este archivo asigna direcciones IP a nombres de host de manera local. Es útil para definir mapeos personalizados sin tener que depender del DNS.

Ejemplo:

127.0.0.1   localhost
192.168.1.100 servidor-casa

2.3. /etc/passwd y /etc/shadow

Estos dos archivos son fundamentales para la gestión de usuarios. El archivo /etc/passwd contiene la información de cada usuario, mientras que /etc/shadow almacena las contraseñas encriptadas.

Ejemplo de una línea en /etc/passwd:

carlos:x:1001:1001:Carlos:/home/carlos:/bin/bash

Aquí se indica que carlos tiene el ID de usuario 1001, el ID de grupo 1001, su directorio home es /home/carlos, y su intérprete de comandos es /bin/bash.

2.4. /etc/ssh/sshd_config

Este archivo gobierna la configuración del servidor SSH. Aquí se puede especificar desde qué direcciones IP se permiten las conexiones, qué tipos de autenticación se admiten, y más.

Ejemplo:

PermitRootLogin no
PasswordAuthentication no

Estas configuraciones deshabilitan el inicio de sesión como root y exigen el uso de autenticación por clave en lugar de contraseñas.

2.5. /etc/sudoers

Este archivo controla los permisos de sudo, que permiten a los usuarios ejecutar comandos como superusuario sin tener que iniciar sesión como root.

Ejemplo:

carlos ALL=(ALL:ALL) ALL

Esta línea otorga al usuario carlos permisos de sudo para ejecutar cualquier comando.

2.6. /etc/crontab

Este archivo contiene las tareas programadas que se ejecutan en intervalos específicos. Permite automatizar procesos y scripts.

Ejemplo:

0 2 * * * root /usr/local/bin/backup.sh

Esta línea ejecuta el script backup.sh todos los días a las 2:00 AM como el usuario root.


Rutas y configuraciones relacionadas con la red

1. /etc/network/interfaces

Este archivo es usado en algunas distribuciones (como Debian y Ubuntu) para configurar las interfaces de red.

Ejemplo:

auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1

Aquí se configura la interfaz eth0 con una dirección IP estática.

2. /etc/resolv.conf

Este archivo especifica los servidores DNS que se utilizan para resolver nombres de dominio.

Ejemplo:

nameserver 8.8.8.8
nameserver 8.8.4.4

Se usan los servidores DNS de Google.

3. iptables y ufw

iptables es una herramienta esencial para gestionar reglas de firewall en Linux, mientras que ufw es una interfaz más amigable para iptables. Las configuraciones de firewall determinan qué tráfico está permitido y cuál debe bloquearse.

Comandos básicos de iptables:

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

El primer comando permite el tráfico SSH (puerto 22), mientras que el segundo bloquea todo el tráfico restante.

4. ifconfig y ip

ifconfig solía ser la herramienta estándar para ver y configurar interfaces de red, pero hoy en día se recomienda usar el comando ip por ser más avanzado.

Ejemplo de uso de ip:

ip addr show
ip link set eth0 up
ip route add default via 192.168.1.1


Veremos estos comandos en profundidad mas adelante.

Buenas prácticas para modificar configuraciones

1. Siempre haz un respaldo

Antes de modificar cualquier archivo de configuración, asegúrate de hacer una copia de seguridad. Puedes usar un simple comando cp para esto:

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

2. Usa editores seguros

Algunos editores como nano o vim son más confiables que usar editores gráficos si estás trabajando en servidores o conexiones SSH.

3. Revisa sintaxis

Muchos archivos de configuración tienen formatos específicos que deben seguirse. Para archivos de configuración como los de nginx o Apache, asegúrate de verificar la sintaxis antes de recargar los servicios:

nginx -t
apachectl configtest

4. Cambios en el sistema de archivos

Si vas a hacer cambios en el sistema de archivos como añadir particiones o modificar /etc/fstab, es buena práctica usar comandos como mount -a para verificar que todo funciona antes de reiniciar el sistema.

5. Reinicia los servicios

Después de modificar archivos de configuración, usualmente es necesario reiniciar los servicios relacionados. Por ejemplo, si modificas la configuración de SSH:

sudo systemctl restart ssh

Pon en práctica lo aprendido

Ahora pon a prueba lo aprendido con estas preguntas y ejercicios. No te preocupes si aún no puedes resolver alguno. En los siguientes capítulos abordaremos algunos de estos temas con mas detalle.

10 Preguntas sobre rutas y configuraciones

  1. ¿Cuál es la importancia del directorio raíz (/) en la estructura de directorios de Linux?
  2. ¿Qué tipo de archivos se almacenan en el directorio /bin y cuál es su función principal?
  3. ¿Por qué es crítico el directorio /boot y qué contiene?
  4. ¿Qué representan los archivos dentro del directorio /dev en Linux?
  5. ¿Qué tipo de archivos se almacenan en el directorio /etc y qué función cumplen?
  6. ¿Qué es el archivo /etc/fstab y para qué se utiliza en un sistema Linux?
  7. ¿Cuál es la diferencia entre los directorios /mnt y /media?
  8. ¿Qué información contiene el archivo /etc/hosts y cuándo es útil modificarlo?
  9. ¿Cómo se diferencian los directorios /bin y /sbin en cuanto a los binarios que almacenan?
  10. ¿Qué prácticas recomendadas deben seguirse al modificar archivos de configuración del sistema?

10 Ejercicios sobre rutas y configuraciones

  1. Utiliza el comando ls para listar los contenidos del directorio raíz (/) y describe brevemente el propósito de al menos tres de los directorios listados.
  2. Muestra los binarios contenidos en el directorio /bin utilizando el comando ls /bin y selecciona tres de ellos para investigar su función.
  3. Verifica si el archivo grub.conf existe en tu sistema, usando el comando find /boot -name grub.conf y describe su propósito si lo encuentras.
  4. Ejecuta el comando fdisk -l y describe las particiones de tu sistema que aparecen en el directorio /dev.
  5. Abre el archivo /etc/fstab con un editor de texto (como nano) y explica cómo están organizadas las particiones de tu sistema.
  6. Añade una nueva entrada en el archivo /etc/hosts que asocie la IP 192.168.1.50 con el nombre servidor-prueba y verifica su funcionamiento.
  7. Utiliza el comando mount -a para comprobar si la configuración en el archivo /etc/fstab es válida.
  8. Configura una tarea programada en /etc/crontab que ejecute un script personalizado a las 3:00 AM diariamente.
  9. Ejecuta el comando iptables -A INPUT -p tcp --dport 80 -j ACCEPT y explica qué hace esta regla en el firewall de Linux.
  10. Haz una copia de seguridad del archivo de configuración /etc/ssh/sshd_config y luego deshabilita el acceso root a través de SSH. Verifica el cambio reiniciando el servicio SSH.

Respuestas a las preguntas:

  1. Importancia del directorio raíz (/): El directorio raíz es la base de todo el sistema de archivos en Linux. A partir de él se organizan todos los demás directorios y subdirectorios. En él no se deben guardar archivos de usuario, ya que es crítico para el funcionamiento del sistema.
  2. Archivos en /bin: En el directorio /bin se almacenan los binarios ejecutables esenciales para los usuarios normales del sistema, como comandos básicos de la terminal (ej. ls, cp, mv). Estos comandos son necesarios para el funcionamiento básico del sistema, incluso en modo monousuario.
  3. Directorio /boot: Es fundamental para el arranque del sistema. Contiene el kernel de Linux, los archivos de inicialización y el gestor de arranque GRUB. Sin este directorio, el sistema no podría arrancar.
  4. Archivos en /dev: Representan los dispositivos físicos conectados al sistema, como discos duros, memorias USB, y otros dispositivos de hardware. Por ejemplo, /dev/sda representa el primer disco duro.
  5. Archivos en /etc: En /etc se almacenan los archivos de configuración del sistema y los programas instalados. Aquí se incluyen configuraciones como las de red, el archivo /etc/fstab que controla el montaje de particiones y los archivos de control de acceso como /etc/hosts.
  6. /etc/fstab: Es un archivo que define cómo y dónde se montarán los sistemas de archivos durante el arranque. Es clave para el montaje automático de particiones y discos.
  7. Diferencias entre /mnt y /media: /mnt se usa tradicionalmente para montar sistemas de archivos de manera temporal, mientras que /media se utiliza para montar automáticamente dispositivos extraíbles como memorias USB y discos externos.
  8. Archivo /etc/hosts: Este archivo se usa para mapear manualmente direcciones IP a nombres de host, sin depender de un servidor DNS. Es útil para asignar nombres a direcciones IP dentro de una red local.
  9. Diferencia entre /bin y /sbin: /bin contiene binarios que pueden ser usados por cualquier usuario, mientras que /sbin contiene binarios destinados a tareas administrativas y de sistema, accesibles solo por el superusuario (root).
  10. Prácticas recomendadas al modificar configuraciones: Siempre realizar un respaldo del archivo antes de modificarlo, utilizar editores seguros como nano o vim, verificar la sintaxis de los archivos de configuración y reiniciar los servicios relacionados después de los cambios.

Respuestas a los ejercicios:

  1. Listar directorios en /: Usando ls /, se ven directorios como /bin, /boot, /etc. /bin contiene ejecutables del sistema, /boot almacena el kernel y archivos de arranque, y /etc contiene archivos de configuración del sistema.
  2. Mostrar binarios en /bin: Usando ls /bin, se ven ejecutables como ls, cp, y grep. Estos son comandos esenciales; ls lista archivos, cp copia archivos, y grep busca texto dentro de archivos.
  3. Buscar grub.conf: Si el archivo existe, contiene la configuración del gestor de arranque GRUB, que indica qué sistemas operativos pueden arrancarse y cómo hacerlo.
  4. Comando fdisk -l: Este comando muestra las particiones de discos como /dev/sda1, que pueden representar particiones de sistema o datos, mostrando su tamaño y tipo de sistema de archivos.
  5. Revisión de /etc/fstab: En este archivo se ven entradas que indican qué particiones se montan en qué puntos de montaje, y qué sistema de archivos se usa. Ejemplo: /dev/sda1 / ext4 defaults 0 1.
  6. Modificar /etc/hosts: Después de agregar la línea 192.168.1.50 servidor-prueba, puedes verificar el funcionamiento usando el comando ping servidor-prueba para ver si resuelve a la dirección IP indicada.
  7. Comprobar /etc/fstab: Al ejecutar mount -a, el sistema verifica y monta todas las particiones definidas en el archivo /etc/fstab, sin necesidad de reiniciar.
  8. Configurar tarea en crontab: Añadir 0 3 * * * root /path/to/script.sh en /etc/crontab ejecutará el script todos los días a las 3:00 AM.
  9. Regla de iptables: Este comando permite el tráfico en el puerto 80 (HTTP), esencial para permitir el acceso web en un servidor. Es útil para habilitar servicios web.
  10. Copiar sshd_config y modificar: Usando cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak se respalda el archivo. Luego, puedes desactivar el acceso root añadiendo PermitRootLogin no. Finaliza reiniciando SSH con systemctl restart ssh.

No te detengas, sigue avanzando

Aquí tienes un propósito que debes considerar seriamente: si has querido mejorar tus habilidades en hacking, Ciberseguridad y programación ahora es definitivamente el momento de dar el siguiente paso. ¡Desarrolla tus habilidades aprovechando nuestros cursos a un precio increíble y avanza en tu carrera! El mundo necesita más hackers…

¿Te gustaría enterarte de cuando lanzamos descuentos y nuevos cursos?

Sobre los autores

Álvaro Chirou

Yo soy Álvaro Chirou, tengo más de 20 Años de experiencia trabajando en Tecnología, eh dado disertaciones en eventos internacionales como OWASP, tengo más de 1.800.000 estudiantes en Udemy y 100 formaciones profesionales impartidas en la misma. Puedes seguirme en mis redes:

Laprovittera Carlos

Soy Laprovittera Carlos. Con más de 20 años de experiencia en IT brindo Educación y Consultoría en Seguridad de la Información para profesionales, bancos y empresas. Puedes saber más de mi y de mis servicios en mi sitio web: laprovittera.com y seguirme en mis redes:

Hacker de 0 a 100 desde las bases hasta conseguir empleo

¿Quieres iniciarte en hacking y ciberseguridad pero no sabes por dónde empezar? Inicia leyendo nuestra guia gratuita: https://achirou.com/hacker-de-0-a-100-desde-las-bases-hasta-conseguir-empleo/ que te lleva de 0 a 100. Desde los fundamentos más básicos, pasando por cursos, recursos y certificaciones hasta cómo obtener tu primer empleo.

Hemos creado una ruta de 0 a 100. Un plan de desarrollo que va desde las bases: cómo aprender hacking, qué aprender, en qué orden; pasando por las areas técnicas necesarias como Linux, Redes, Programación y los conocimientos necesarios en ciber seguridad, hacking, pentesting hasta la práctica y el inicio laboral: Crear tu propio laboratorio, certificaciones, adquirir experiencia e iniciarse laboralmente.

Este es un mega post. Una guía con más de 250 artículos que te llevaran por el camino del hacker. Esta guía es gratuita y esta creada gracias al esfuerzo y al trabajo combinado de Alvaro Chirou y mío (Laprovittera Carlos).

Creamos esta guía (futuro curso) para que puedas iniciarte en este mundo. Puedes arrancar ahora, GRATIS, solo necesitas un PC, conexión a internet y paciencia (Ser hacker NO ES un camino de la noche a la mañana).

El Hacking y la ciberseguridad es una carrera divertida, emocionante y gratificante que te recompensará y desafiará por igual. Sin embargo, para quienes buscan adentrarse en este campo en auge y en constante evolución, puede resultar difícil saber por dónde empezar. ¡Ahí es donde entra en juego nuestra guía en ciberseguridad!

Esta es la hoja de ruta hacia el trabajo de ciberseguridad de tus sueños. Te ayudará a entender qué conocimientos, habilidades y certificados son necesarios para alcanzar tus metas profesionales y tener una carrera próspera. Si quieres ser consultor de ciberseguridad, analista de malware, evaluador de penetración, analista de SOC o cualquier otro puesto de ciberseguridad, esta guía es lo que necesitas.

SIGUE APRENDIENDO GRATIS CON NUESTRAS GUIAS

Aprende con nuestros más de 100 cursos que tenemos disponibles para vos

Compartimos estos recursos para ayudar a la comunidad de hacking y ciberseguridad. COMPARTE y Siéntete libre de agregar más sugerencias en los comentarios a continuación, respondemos todos y cada uno de los comentarios.

Saludos amigos y happy hacking!!!