🧪 Mini Test
Esta guía está diseñada para ayudarte a preparar la evaluación del proyecto Born2beroot de manera eficaz. Contiene respuestas detalladas a las preguntas frecuentes, comandos esenciales, y explicaciones clave. Además, utiliza botones desplegables para que puedas practicar sin ver las respuestas de inmediato.
🔍 Respuestas a Preguntas Frecuentes
1. ¿Qué es una máquina virtual? ❓
Mostrar respuesta
Es un software que simula un sistema de computación y puede ejecutar programas como si fuese una computadora real. Permite crear múltiples entornos simulados o recursos dedicados desde un solo sistema de hardware físico.2. ¿Por qué has escogido Debian? ❓
Mostrar respuesta
Esto es algo personal para cada uno, mi opinión: El propio subject explica que es más sencillo hacerlo en Debian y si buscas documentación/tutoriales hay muchos y todos se han hecho en Debian.3. ¿Cuáles son las diferencias básicas entre Rocky y Debian? ❓
Mostrar respuesta
- **Gestión de Paquetes**: Debian usa `apt`/`aptitude`, mientras que Rocky usa `dnf`. - **Seguridad**: Rocky incorpora SELinux por defecto; Debian usa AppArmor. - **Comunidad**: Debian tiene una comunidad más grande y extensa, mientras que Rocky es más nuevo.4. ¿Cuál es el propósito de las máquinas virtuales? ❓
Mostrar respuesta
Su objetivo es proporcionar un entorno de ejecución independiente de la plataforma de hardware y del sistema operativo, que oculte los detalles de la plataforma subyacente y permita que un programa se ejecute siempre de la misma forma sobre cualquier plataforma.5. ¿Qué diferencias existen entre apt
y aptitude
? ❓
Mostrar respuesta
Aptitude es una versión mejorada de apt. APT es un administrador de paquetes de nivel inferior y aptitude es de alto nivel. Aptitude ofrece más funcionalidades y una interfaz más amigable en comparación con apt-get.6. ¿Qué es AppArmor? ❓
Mostrar respuesta
Es un módulo de seguridad del kernel Linux que permite al administrador del sistema restringir las capacidades de un programa.7. ¿Qué es LVM? ❓
Mostrar respuesta
Es un gestor de volúmenes lógicos que proporciona un método para asignar espacio en dispositivos de almacenamiento masivo, que es más flexible que los esquemas de particionado convencionales para almacenar volúmenes.⌨️ Comandos Esenciales para la Evaluación
Aquí encontrarás los comandos más importantes que debes conocer para superar la evaluación. Cada comando viene con una breve explicación y ejemplos de su uso.
1. Comprobar que no haya ninguna interfaz gráfica en uso.
ls /usr/bin/*session
Mostrar imagen
![Interfaz gráfica](https://user-images.githubusercontent.com/XXXXXXX)2. Comprobar que el servicio UFW está en uso.
sudo ufw status
sudo service ufw status
Mostrar imagen
![UFW status](https://user-images.githubusercontent.com/XXXXXXX)3. Comprobar que el servicio SSH está en uso.
sudo service ssh status
Mostrar imagen
![SSH status](https://user-images.githubusercontent.com/XXXXXXX)4. Comprobar que utilizas el sistema operativo Debian o CentOS.
uname -v
uname --kernel-version
Mostrar imagen
![OS version](https://user-images.githubusercontent.com/XXXXXXX)5. Comprobar que tu usuario esté dentro de los grupos “sudo” y “user42”.
getent group sudo
getent group user42
Mostrar imagen
![Grupos del usuario](https://user-images.githubusercontent.com/XXXXXXX)6. Crear un nuevo usuario y mostrar que sigue la política de contraseñas que hemos creado.
sudo adduser nombre_usuario
Mostrar imagen
![Política de contraseñas](https://user-images.githubusercontent.com/XXXXXXX)7. Crear un nuevo grupo llamado “evaluating”.
sudo addgroup evaluating
Mostrar imagen
![Crear grupo](https://user-images.githubusercontent.com/XXXXXXX)8. Añadir el nuevo usuario al nuevo grupo.
sudo adduser nombre_usuario evaluating
Mostrar imagen
![Añadir usuario al grupo](https://user-images.githubusercontent.com/XXXXXXX)9. Comprobar que el hostname de la máquina es correcto login42
.
hostname
cat /etc/hostname
Mostrar imagen
![Hostname](https://user-images.githubusercontent.com/XXXXXXX)10. Modificar hostname para reemplazar tu login por el del evaluador.
sudo nano /etc/hostname
sudo nano /etc/hosts
Mostrar imagen
![Modificar hostname](https://user-images.githubusercontent.com/XXXXXXX)11. Comprobar que todas las particiones son como indica el subject.
lsblk
Mostrar imagen
![Particiones](https://user-images.githubusercontent.com/XXXXXXX)12. Comprobar que sudo
está instalado.
which sudo
dpkg -s sudo
Mostrar imagen
![Sudo instalado](https://user-images.githubusercontent.com/XXXXXXX)13. Introducir el nuevo usuario dentro del grupo sudo.
sudo adduser nombre_usuario sudo
Mostrar imagen
![Añadir a sudo](https://user-images.githubusercontent.com/XXXXXXX)14. Mostrar la aplicación de las reglas impuestas para sudo
por el subject.
Mostrar imagen
![Reglas sudo](https://user-images.githubusercontent.com/XXXXXXX)15. Mostrar que la ruta /var/log/sudo/
existe y contiene al menos un fichero.
Mostrar imagen
![Logs sudo](https://user-images.githubusercontent.com/XXXXXXX)16. Comprobar que el programa UFW está instalado en la máquina virtual y funciona correctamente.
dpkg -s ufw
sudo service ufw status
Mostrar imagen
![UFW instalado](https://user-images.githubusercontent.com/XXXXXXX)17. Listar las reglas activas en UFW.
sudo ufw status numbered
Mostrar imagen
![Reglas UFW](https://user-images.githubusercontent.com/XXXXXXX)18. Crear una nueva regla para el puerto 8080 y luego borrarla.
sudo ufw allow 8080
sudo ufw delete num_regla
Mostrar imagen
![Reglas UFW](https://user-images.githubusercontent.com/XXXXXXX)19. Comprobar que el servicio SSH está instalado, funcionando y sólo en el puerto 4242.
which ssh
sudo service ssh status
Claro, aquí tienes la continuación de la guía de preparación para la evaluación de Born2beroot.
19. Comprobar que el servicio SSH está instalado, funcionando y sólo en el puerto 4242.
which ssh
sudo service ssh status
Mostrar imagen
![SSH funcionando](https://user-images.githubusercontent.com/XXXXXXX)20. Usar SSH para iniciar sesión con el usuario recién creado. Asegúrate de que no puede usar SSH con el usuario root.
ssh nombre_usuario@localhost -p 4242
ssh root@localhost -p 4242
Mostrar imagen
![SSH acceso](https://user-images.githubusercontent.com/XXXXXXX)21. Modificar el tiempo de ejecución del script de 10 minutos a 1 minuto.
sudo crontab -u root -e
Mostrar imagen
![Editar crontab](https://user-images.githubusercontent.com/XXXXXXX)22. Finalmente, haz que el script deje de ejecutarse cuando el servidor se haya iniciado, pero sin modificar el script.
sudo /etc/init.d/cron stop
Mostrar imagen
![Detener cron](https://user-images.githubusercontent.com/XXXXXXX)💻 Explicaciones Técnicas Detalladas
1. ¿Qué es el propósito de configurar cron
y crontab
?
cron
es un administrador de tareas en sistemas Unix/Linux que permite ejecutar comandos o scripts en horarios específicos. crontab
es el archivo donde se definen estas tareas programadas. Configurar cron
para ejecutar un script a intervalos regulares permite la automatización de tareas repetitivas sin intervención manual.
2. ¿Qué hacer si el servicio SSH no está funcionando?
- Verifica que el servicio SSH esté instalado.
- Revisa la configuración en
/etc/ssh/sshd_config
para asegurarte de que está escuchando en el puerto correcto (4242). - Usa
systemctl restart ssh
para reiniciar el servicio. - Comprueba los logs en
/var/log/auth.log
para posibles errores.
3. ¿Cómo verificar el funcionamiento de UFW
?
- Usa
sudo ufw status verbose
para obtener una descripción detallada del estado y las reglas actuales. - Asegúrate de que las reglas se apliquen como se espera utilizando
sudo ufw status numbered
.
📝 Ejemplo de Sesión de Evaluación
Aquí tienes un ejemplo de cómo podrías llevar a cabo la evaluación de manera efectiva.
- Preparación Inicial:
- Configura tu entorno de acuerdo con los requisitos del proyecto.
- Asegúrate de que tu máquina virtual está en buen estado y que todos los servicios básicos están funcionando.
- Configuración de Servicios:
- Configura
UFW
para permitir solo el puerto necesario. - Verifica que SSH esté corriendo y configurado correctamente en el puerto adecuado.
- Crea y administra usuarios y grupos como se especifica en las instrucciones.
- Configura
- Verificación y Pruebas:
- Realiza pruebas exhaustivas de cada configuración para asegurarte de que todo está funcionando como se espera.
- Utiliza los comandos proporcionados para verificar la configuración de
crontab
,sudo
, y otros servicios críticos.
- Finalización:
- Asegúrate de que el script cron está configurado correctamente y que se detiene al reiniciar el servidor.
- Revisa todos los detalles finales para confirmar que cumplen con los requisitos del enunciado.
🧠 Bonus: Servicios Adicionales y Configuraciones
1. Implementación de Particiones (2 puntos)
- Objetivo: Configurar particiones adicionales según las especificaciones del proyecto.
- Ejemplo: Crear particiones lógicas y físicas según los requisitos, configurar
LVM
si es necesario.
2. Configuración de WordPress (2 puntos)
- Objetivo: Configurar WordPress utilizando solo los servicios listados en el enunciado.
- Requisitos: Asegúrate de que WordPress está funcionando correctamente con las configuraciones de servicios indicadas.
3. Servicio de Libre Elección (1 punto)
- Objetivo: Implementar un servicio adicional de tu elección, excluyendo NGINX y Apache2.
- Ejemplo: Considera servicios como
nginx
olighttpd
(según requisitos específicos), o un servicio de base de datos alternativo. - Explicación: Proporciona una breve explicación del servicio y por qué lo elegiste.
¡Buena suerte con tu evaluación! Prepárate bien, revisa todos los comandos y conceptos clave, y asegúrate de que cada paso esté correctamente configurado antes de finalizar tu sesión.