Skip to content

Tutorial to install Debian virtual machine with functional WordPress site with the following services: lighttpd, MariaDB, PHP and Litespeed.

Notifications You must be signed in to change notification settings

gemartin99/Born2beroot-Tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Born2beroot-Tutorial 🖥🇪🇸

This guide has versions in different languages. Choose the one you prefer.

English version 🇬🇧

CLICK HERE

Versão portuguesa 🇵🇹

CLIQUE AQUI

Índice

  1. Descargar imagen de la máquina virtual 💿

  2. Instalación de la máquina 💻

    2.1 Instalación de la máquina con Virtual Box 📦

    2.2 Instalación de la máquina con VMware ☁️

  3. Instalación Debian 🌀

  4. Configuración de la máquina virtual ⚙️

    4.1 Instalación de sudo y configuración de usuarios y grupos 👤

    4.2 Instalación y configuración de SSH 📶

    4.3 Instalación y configuración de UFW 🔥🧱

    4.4 Configurar contraseña fuerte para sudo 🔒

    4.5 Configuración de política de contraseñas fuerte 🔑

    4.6 Conectarse vía SSH 🗣

  5. Script 🚨

    5.1 Resultado total del script 🆗

  6. Crontab ⏰

  7. Signature.txt 📝

  8. Bonus ⭐

    8.1 Particionado manual del disco 🛠

    8.2 Wordpress y configuración de servicios 🌐

    8.3 Servicio adicional ➕

  9. Hoja de corrección ✅

    9.1 Respuestas de la evaluación 💯

    9.2 Comandos de la evaluación ⌨️

  10. Tester 🆗

1- Descargar imagen de la máquina virtual 💿

Click aquí para redireccionarte a la URL donde puedes descargar la ISO de manera segura.

2- Instalación de la máquina 🛠

Según el subject es OBLIGATORIO hacer este proyecto con Virtual Box. Si por algún problema técnico en tu campus no está disponible Virtual Box, este tutorial cuenta con una versión para re.

Si quieres hacer la instalación con re haz Click aquí

2-1 Instalación de la máquina con Virtual Box 📦

Para realizar la instalación se requiere de un software de virtualización. En este tutorial haremos uso de VirtualBox. Si ya tienes VirtualBox instalado y dispones de la ISO Debian ya podemos empezar con el tutorial.

1 ◦ Debemos abrir VirtualBox y pinchar sobre Nueva

Captura de pantalla 2022-07-13 a las 18 02 05

2 ◦ Escogemos el nombre de nuestra máquina y la carpeta donde estará ubicada. Importante introducir la máquina dentro de la carpeta sgoinfre, ya que si no la ubicamos ahí nos quedaremos sin espacio y fallará la instalación (dependiendo del campus la ruta de sgoinfre puede cambiar).

Screen Shot 2022-11-18 at 2 30 18 PM

3 ◦ Seleccionamos la cantidad de memoria RAM que reservaremos para la máquina.

Captura de pantalla 2022-07-13 a las 13 06 05

4 ◦ Seleccionamos la segunda opción para así crear un disco duro virtual ahora.

Captura de pantalla 2022-07-13 a las 18 13 24

5 ◦ Escogemos la primera opción VDI, ya que nos hemos descargado una imagen de disco.

Captura de pantalla 2022-07-13 a las 18 16 35

6 ◦ Seleccionamos la primera opción Reservado dinámicamente para que así se vaya reservando memoria en la máquina real según vayamos utilizándola en la virtual hasta llegado al límite máximo disponible en la virtual.

Captura de pantalla 2022-07-13 a las 18 19 33

7 ◦ Una vez hayamos establecido la cantidad recomendada 12 GB deberemos darle a Crear. Si haremos el bonus seleccionaremos 30 GB.

Captura de pantalla 2022-07-13 a las 18 25 20

8 ◦ Puede parecer que ya hemos terminado la instalación, pero todavía faltan un par de pasos más. Debemos darle a configuración.

Captura de pantalla 2022-07-13 a las 18 30 46

9 ◦ Acto seguido pincharemos encima de Almacenamiento, volveremos a pinchar sobre el emoticono 💿 que se encuentra a la derecha y de nuevo pincharemos sobre Seleccionar un archivo de disco.

Captura de pantalla 2022-07-13 a las 18 33 28

10 ◦ Seleccionaremos la ISO que acabamos de descargar y le damos a Abrir y después le daremos a Aceptar.

Captura de pantalla 2022-07-13 a las 18 38 39

  1. ◦ Una vez completados todos los pasos anteriores, ya podemos Iniciar nuestra máquina virtual.

Captura de pantalla 2022-07-13 a las 18 44 55

Para dirigirte a la Instalación de Debian directamente Click aquí


2-2 Instalación de la máquina con VMware ☁️

1 ◦ Debemos abrir re y pinchar sobre New.

Screen Shot 2023-12-05 at 8 56 46 PM

2 ◦ Se nos habrá abierto una pestaña. Ahora debemos arrastrar la ISO de Debian que hemos descargado en el paso 1.

Screen Shot 2023-12-05 at 9 18 17 PM

3 ◦ Le damos a continue e indicamos el sistema operativo que usaremos.

Screen Shot 2023-12-05 at 9 20 19 PM

4 ◦ Seleccionamos Debian 10.x 64 bits.

Screen Shot 2023-12-05 at 9 20 38 PM

5 ◦ Seleccionaremos Legacy BIOS. Este paso es importante, ya que si escogemos UEFI o UEFI Secure Boot las particiones no quedarán como específica el subject, ya que crea una partición nueva. Con la opción Legacy Bios no se creará ninguna partición específica.

Screen Shot 2023-12-05 at 9 20 50 PM

6 ◦ Antes de finalizar la instalación, debemos escoger la ruta donde almacenaremos nuestra máquina virtual. Le daremos a Customize Settings.

Screen Shot 2023-12-05 at 9 57 59 PM

7 ◦ Cambiamos el nombre de la máquina a Born2beroot y pincharemos sobre la flecha para poder escoger la ruta donde almacenaremos la máquina.

Screen Shot 2023-12-05 at 9 56 44 PM

8 ◦ Para que no nos quite espacio de nuestro usuario, la almacenaremos en el sgoinfre. Es importante que crees una carpeta con tu login y que tenga los permisos necesarios. Una vez la tengas, almacenaremos nuestra máquina virtual en esa ruta. En mi caso esta es la ruta, quizás en tu campus es diferente!

Screen Shot 2023-12-05 at 9 23 44 PM

3- Instalación Debian 🌀

➤ Espera❗️ Tu vista es muy importante 👀❗️ Para poder hacer la ventana más grande debes hacer lo siguiente:

Captura de pantalla 2022-07-13 a las 18 51 41

Utiliza la tecla command para que la captura del ratón pase de la máquina real a la virtual y al revés.

Sigamos con la instalación 🛠

1 ◦ Escogeremos la versión sin interfaz gráfica Install, ya que el subject indica que no se utilice ninguna. Cada vez que queramos confirmar algo presionaremos Enter y para movernos por las opciones utilizaremos las flechas.

Captura de pantalla 2022-07-13 a las 18 58 48

2 ◦ Escogeremos el idioma que usaremos para la instalación y el predeterminado que se le quedará al sistema English.

Captura de pantalla 2022-07-13 a las 19 00 41

3 ◦ Introducimos nuestro País, territorio o zona. En mi caso pondré Other.

Captura de pantalla 2022-07-13 a las 19 07 50

4 ◦ Como he seleccionado other, debo indicar mi continente o región. En mi caso pongo Europe 🇪🇺.

Captura de pantalla 2022-07-13 a las 19 09 58

5 ◦ Seleccionamos el país. En mi caso Spain 🇪🇸.

Captura de pantalla 2022-07-13 a las 19 12 01

6 ◦ Seleccionamos United States.

Captura de pantalla 2022-07-13 a las 19 13 43

7 ◦ Importante seleccionar American English como configuración de teclado, ya que si no tendremos las teclas mal enlazadas.

Captura de pantalla 2022-07-13 a las 19 02 21

8 ◦ En este paso debemos elegir el Host Name de la máquina, el cual debe ser tu login seguido de 42.

Captura de pantalla 2022-07-13 a las 19 17 23

9 ◦ Este apartado lo dejaremos vacío, ya que el subject no mencionada nada de Domain name.

Captura de pantalla 2022-07-13 a las 19 20 29

10 ◦ Debemos introducir una contraseña para la cuenta de administración del sistema. Importante apuntarla o hacer una foto, ya que le daremos uso. Si quieres ver la contraseña para asegurarte de que la has escrito correctamente debes tabular hasta llegar a la opción Show Password in Clear debes darle a la barra espaciadora y se mostrará la clave.

Screen Shot 2022-11-18 at 2 32 55 PM

11 ◦ Repetimos el proceso de nuevo para comprobar que no la hayamos escrito mal.

Screen Shot 2022-11-18 at 2 33 15 PM

12 ◦ Elegimos el nombre de nuestro nuevo usuario. Como indica el subject, hay que crear un usuario adicional que no sea el root con nuestro login, por ese motivo llamaré gemartin a mi nuevo usuario.

Captura de pantalla 2022-07-13 a las 19 26 20

Volvemos a poner el nombre de usuario.

image

13 ◦ Ahora debemos introducir la contraseña de nuestro nuevo usuario. Como la anterior, repetiremos el proceso para comprobar que no la hayas escrito mal y también es importante que la guardes porque le daremos uso más adelante.

Captura de pantalla 2022-07-13 a las 19 30 08

14 ◦ Seleccionamos la hora de nuestra ubicación.

Captura de pantalla 2022-07-13 a las 19 31 41

15 ◦ Escogeremos la tercera opción Guied - use entire disk and set up encrypted LVM, ya que el subject nos dice que deben ser particiones cifradas. ⚠️❗️ Si quieres hacer el bonus deberás darle a Manual y hacer click aquí ❗️⚠️

Captura de pantalla 2022-07-13 a las 19 33 13

16 ◦ Seleccionamos el disco en el que queremos hacer el particionado (Solo debe haber un disco).

Captura de pantalla 2022-07-13 a las 19 40 03

17 ◦ Una vez hayamos escogido el disco deberemos hacer el particionado tal y como nos piden. Para realizarlo adecuadamente debemos seleccionar la segunda opción Separate /home partition.

Screen Shot 2023-03-08 at 1 44 16 PM

18 ◦ Escogemos la opción Yes para que así se escriban los cambios en el disco y podamos configurar el gestor de volúmenes lógicos (LVM).

Captura de pantalla 2022-07-13 a las 19 44 30

19 ◦ Le damos a Cancel, ya que el borrado de datos en el disco no es necesario.

Captura de pantalla 2022-07-13 a las 19 46 45

20 ◦ De nuevo deberemos poner una contraseña, esta vez será la frase de encriptación. Como te he comentado previamente deberás repetir el proceso y la debes anotar, ya que será importante en un futuro.

Captura de pantalla 2022-07-13 a las 19 51 17

21 ◦ En este paso debemos introducir la cantidad de volumen que usaremos para la partición guiada. Debemos introducir max o el número de tamaño máximo disponible en mi caso es 12.4 GB.

Captura de pantalla 2022-07-13 a las 19 55 02

22 ◦ Para finalizar la partición y escribir los cambios en el disco le daremos a la opción Finish partitioning and write changes to disk.

Screen Shot 2023-03-08 at 1 46 17 PM

23 ◦ Seleccionamos la opción Yes para continuar y confirmar que no queremos hacer más cambios en el disco.

Screen Shot 2023-03-08 at 1 46 52 PM

24 ◦ Seleccionamos la opción No, ya que no necesitamos paquetes adicionales.

Captura de pantalla 2022-07-13 a las 20 05 42

25 ◦ Escogemos nuestro País.

Captura de pantalla 2022-07-13 a las 20 14 23

26 ◦ Escogemos deb.debian.org, ya que es lo que recomienda Debian.

Captura de pantalla 2022-07-13 a las 20 15 00

27 ◦ Esta opción la dejaremos vacía y le daremos Continue.

Captura de pantalla 2022-07-13 a las 20 17 24

28 ◦ Seleccionamos la opcion No, ya que no queremos que los developers vean nuestras estadísticas aunque sean anónimas.

Captura de pantalla 2022-07-13 a las 20 21 54

29 ◦ Quitaremos todas las opciones de software (con la barra espaciadora) y le daremos a Continue.

Captura de pantalla 2022-07-13 a las 20 24 17

30 ◦ Seleccionaremos Yes para instalar GRUB boot en el disco duro.

Captura de pantalla 2022-07-13 a las 20 26 24

31 ◦ Escogeremos el dispositivo para la instalación del cargador de arranque /dev/sda (ata_VBOX_HARDDISK).

Captura de pantalla 2022-07-13 a las 20 35 46

32 ◦ Le daremos a Continue para finalizar la instalación.

Captura de pantalla 2022-07-13 a las 20 39 30

4 Configuración de la máquina virtual ⚙️

➤ Lo primero que debemos hacer es seleccionar Debian GNU/Linux.

➤ Debemos introducir la contraseña de encriptación que utilizamos previamente. En mi caso es Hello42bcn.

Captura de pantalla 2022-07-13 a las 20 47 26

➤ Debemos introducir el usuario y contraseña que hemos creado. En mi caso el usuario es gemartin y la contraseña Hola42spain.

Captura de pantalla 2022-07-13 a las 20 48 38

Ya tenemos todo listo para empezar a configurar nuestra máquina virtual Debian❗️

4.1 - Instalación de sudo y configuración de usuarios y grupos 👤

1 ◦ Para la instalación de sudo primero debemos estar en el usuario root, para ello pondremos Su en el terminal e introduciremos la contraseña, en mi caso es Hola42bcn. Una vez hemos accedido al usuario root, debemos poner el comando apt install sudo para así instalar los paquetes necesarios.

Captura de pantalla 2022-07-14 a las 1 36 46

2 ◦ Debemos reiniciar la máquina para que se apliquen los cambios. Para ello haremos uso del comando sudo reboot y esperaremos a que se reinicie.

Captura de pantalla 2022-07-14 a las 2 02 24

3 ◦ Una vez reiniciado debemos volver a introducir las contraseñas de cifrado y del usuario. Para verificar que hayamos instalado sudo correctamente entraremos de nuevo en el usuario root y pondremos el comando sudo -V, este comando además de mostrarnos la versión de sudo también mostrará los argumentos pasados para configurar cuando se creó sudo y los plugins que pueden mostrar información más detallada. (Opcional) ➤ Puesto que el output del comando es muy largo, si deseamos verlo completamente debemos redireccionar la salida del mismo a un fichero sudo -V > file.txt y luego editar el fichero nano file.txt. O poner | more después del comando.

Captura de pantalla 2022-07-14 a las 2 09 59

4 ◦ Siguiendo en el usuario root crearemos un usuario con nuestro login con el comando sudo adduser login como nosotros ya hemos creado el usuario en la instalación nos debe aparecer que el usuario ya existe.

Captura de pantalla 2022-07-14 a las 2 15 11

5 ◦ Ahora deberemos crear un nuevo grupo llamado user42. Para crearlo debemos hacer sudo addgroup user42.

Screen Shot 2022-10-26 at 6 30 52 PM

🧠 Qué es GID❓ Es el identificador de grupo, es una abreviatura de Group 🆔.

🤔 Se ha creado correctamente el grupo? Lo cierto es que sí, ya que no ha habido ningún mensaje de error, aun así podemos comprobar si se ha creado con el comando getent group nombre_grupo o también podemos hacer cat /etc/group y podremos ver todos los grupos y los usuarios que hay dentro de ellos.

6 ◦ Con el comando sudo adduser user group incluiremos al usuario en el grupo. Debemos incluir al usuario en los grupos sudo y user42.

Screen Shot 2022-10-26 at 6 32 30 PM

Screen Shot 2022-10-26 at 6 34 09 PM

7 ◦ Una vez los hayamos introducido para chequear que todo se haya hecho correctamente podemos ejecutar el comando getent group nombre_grupo o también podemos editar el fichero /etc/group nano /etc/group y en los grupos sudo y user42 deberá aparecer nuestro usuario.

Screen Shot 2022-10-26 at 6 35 50 PM

Screen Shot 2022-10-26 at 6 36 18 PM

Screen Shot 2022-10-26 at 6 39 22 PM

Screen Shot 2022-10-26 at 6 38 25 PM

4.2 - Instalación y configuración SSH 📶

🧠 Qué es SSH❓ Es el nombre de un protocolo y del programa que lo implementa cuya principal función es el acceso remoto a un servidor por medio de un canal seguro en el que toda la información está cifrada.

1 ◦ Lo primero que haremos será hacer sudo apt update para actualizar los repositorios que definimos en el archivo /etc/apt/sources.list

Captura de pantalla 2022-07-14 a las 3 09 44

2 ◦ Acto seguido instalaremos la herramienta principal de conectividad para el inicio de sesión remoto con el protocolo SSH, esta herramienta es OpenSSH. Para instalarla debemos introducir el comando sudo apt install openssh-server. En el mensaje de confirmación ponemos Y, acto seguido esperaremos a que termine la instalación.

Captura de pantalla 2022-07-14 a las 3 14 52

Para comprobar que se haya instalado correctamente haremos sudo service ssh status y nos debe aparecer active.

Captura de pantalla 2022-07-14 a las 3 53 59

3 ◦ Una vez terminada la instalación se han creado algunos ficheros que debemos configurar. Para ello utilizaremos Nano, o si tú lo prefieres, otro editor de texto. El primer fichero que editaremos será /etc/ssh/sshd_config. Si no estas desde el usuario root no tendrás permisos de escritura, para ello haremos su y ponemos la contraseña para entrar al usuario root o si no quieres entrar en el usuario root, ponemos sudo al principio del comando sudo nano /etc/ssh/sshd_config.

Captura de pantalla 2022-07-14 a las 3 24 21

4 ◦ Los # al comienzo de una línea significan que está comentada, las líneas que vayamos a modificar deberás quitarle el comentario. Una vez estemos editando el fichero deberemos modificar las siguientes líneas:

➤ #Port 22 -> Port 4242

Captura de pantalla 2022-07-14 a las 3 31 04

➤ #PermitRootLogin prohibit-password -> PermitRootLogin no

Captura de pantalla 2022-07-14 a las 3 34 13

Una vez hayamos modificado esas líneas debemos guardar los cambios realizados sobre el fichero y dejar de editarlo.

5 ◦ Ahora debemos editar el fichero /etc/ssh/ssh_config.

Captura de pantalla 2022-07-14 a las 3 48 56

Editaremos la siguiente línea:

➤ #Port 22 -> Port 4242

Captura de pantalla 2022-07-14 a las 3 50 29

6 ◦ Por último, debemos reiniciar el servicio ssh para que así se actualicen las modificaciones que acabamos de realizar. Para ello debemos escribir el comando sudo service ssh restart y una vez reseteado miraremos el estado actual con sudo service ssh status y para confirmar que se hayan realizado los cambios en la escucha del servidor debe aparecer el Puerto 4242.

Captura de pantalla 2022-07-14 a las 3 56 56

4-3 Instalación y configuración de UFW 🔥🧱

🧠 Qué es UFW Es un firewall el cual utiliza la línea de comandos para configurar las iptables usando un pequeño número de comandos simples.

1 ◦ Lo primero que debemos hacer el instalar UFW, para ello haremos uso del comando sudo apt install ufw acto seguido escribiremos una y para confirmar que deseamos instalarlo y esperaremos a que termine.

Captura de pantalla 2022-07-14 a las 19 28 55

Captura de pantalla 2022-07-14 a las 19 29 25

2 ◦ Una vez instalado debemos habilitarlo. Para ello debemos poner el siguiente comando sudo ufw enable y acto seguido nos debe indicar que el firewall está activo.

Captura de pantalla 2022-07-14 a las 19 32 57

3 ◦ Ahora lo que debemos hacer es que nuestro firewall permita las conexiones que se lleven a cabo mediante el puerto 4242. Lo haremos con el siguiente comando sudo ufw allow 4242.

Captura de pantalla 2022-07-14 a las 19 34 12

4 ◦ Por último, comprobaremos que está todo correctamente configurado mirando el estado de nuestro cortafuegos, en donde ya debe aparecer como permitidas las conexiones mediante el puerto 4242. Para ver el estado daremos uso del comando sudo ufw status.

Captura de pantalla 2022-07-14 a las 19 38 37

4-4 Configurar contraseña fuerte para sudo 🔒

1 ◦ Crearemos un fichero en la ruta /etc/sudoers.d/ a mi fichero yo le he decidido llamar sudo_config, ya que en ese fichero se almacenará la configuración de la contraseña. El comando exacto para crear el fichero es touch /etc/sudoers.d/sudo_config.

Captura de pantalla 2022-07-14 a las 22 00 40

2 ◦ Debemos crear el directorio sudo en la ruta /var/log porque cada comando que ejecutemos con sudo, tanto el input como el output, debe quedar almacenado en ese directorio. Para crearlo utilizaremos el comando mkdir /var/log/sudo.

Captura de pantalla 2022-07-14 a las 21 56 53

3 ◦ Debemos editar el fichero creado en el paso 1. Como he comentado anteriormente, puedes utilizar el editor que más te guste, pero yo haré uso de nano. Comando para editar el fichero: nano /etc/sudoers.d/sudo_config.

Captura de pantalla 2022-07-14 a las 22 04 10

4 ◦ Una vez estamos editando el fichero deberemos introducir los siguientes comandos para cumplir todos los requisitos que pide el subject.

Defaults  passwd_tries=3
Defaults  badpass_message="Mensaje de error personalizado"
Defaults  logfile="/var/log/sudo/sudo_config"
Defaults  log_input, log_output
Defaults  iolog_dir="/var/log/sudo"
Defaults  requiretty
Defaults  secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

➤ Como debería verse el fichero.

Captura de pantalla 2022-07-16 a las 2 03 45

🤔 Qué hace cada comando❓

Captura de pantalla 2022-07-16 a las 2 04 56

4-5 Configuración de política de contraseñas fuerte 🔑

1 ◦ El primer paso será editar el fichero login.defs.

Captura de pantalla 2022-07-16 a las 2 54 06

2 ◦ Una vez estemos editando el fichero, modificaremos los siguientes parámetros:

➤ PASS_MAX_DAYS 99999 -> PASS_MAX_DAYS 30

➤ PASS_MIN_DAYS 0 -> PASS_MIN_DAYS 2

Captura de pantalla 2022-07-16 a las 3 05 49

PASS_MAX_DAYS: Es el tiempo de expiración de la contraseña. El número corresponde a días.

PASS_MIN_DAYS: El número mínimo de días permitido antes de modificar una contraseña.

PASS_WARN_AGE: El usuario recibirá un mensaje de aviso indicando que faltan los días especificados para que expire su contraseña.

3 ◦ Para poder seguir con la configuración debemos instalar los siguientes paquetes con este comando sudo apt install libpam-pwquality , acto seguido pondremos Y para confirmar la instalación y esperaremos a que termine.

Captura de pantalla 2022-07-16 a las 3 13 52

4 ◦ Lo siguiente que debemos hacer es volver a editar un fichero y modificar algunas líneas. Haremos nano /etc/pam.d/common-password.

Captura de pantalla 2022-07-16 a las 3 27 02

5 ◦ Después de retry=3 debemos añadir los siguientes comandos:

minlen=10
ucredit=-1
dcredit=-1
lcredit=-1
maxrepeat=3
reject_username
difok=7
enforce_for_root

➤ Así debe ser la línea ↙️

Screen Shot 2023-01-03 at 7 41 57 PM

➤ Así se debe ver en el fichero ↙️

Captura de pantalla 2022-07-16 a las 3 38 08

🤔 Que hace cada comando❓

minlen=10 ➤ La cantidad mínima de caracteres que debe contener la contraseña.

ucredit=-1 ➤ Como mínimo debe contener una letra mayúscula. Ponemos el - ya que debe contener como mínimo un carácter, si ponemos + nos referimos a como máximo esos caracteres.

dcredit=-1 ➤ Como mínimo debe contener un dígito.

lcredit=-1 ➤ Como mínimo debe contener una letra minúscula.

maxrepeat=3 ➤ No puede tener más de 3 veces seguidas el mismo carácter.

reject_username ➤ No puede contener el nombre del usuario.

difok=7 ➤ Debe tener al menos 7 caracteres que no sean parte de la antigua contraseña.

enforce_for_root ➤ Implementaremos esta política para el usuario root.

6 ◦ La política de contraseñas que acabamos de implementar afecta solo a los usuarios nuevos. Por lo tanto, es necesario actualizar las cuentas de los usuarios que fueron creadas antes de esta política para que cumplan con los nuevos requisitos de seguridad. Para comprobar si el usuario no cumple con la política haremos uso del comando sudo chage -l username.

Asi se veria, debemos comprobar que los dias

image

7 ◦ Si vemos que dicho usuario no cumple con la politica debemos modificar el numero minimo y maximo de dias entre cambios de contraseña, para ello usaremos el siguiente comando: sudo chage -m <time> <username> y sudo chage -M <time> <username>.

-m is para el numero minimo de dias y -M para el numero maximo.

Asi se deben de ver los comandos

image

Una vez aplicados los cambios asi se deberia ver:

image

4-6 Conectarse vía SSH 🗣

1 ◦ Para conectarnos por SSH debemos cerrar la máquina, abrir VirtualBox y darle a configuración.

Captura de pantalla 2022-07-18 a las 10 15 13

2 ◦ Una vez en configuración debemos pinchar sobre el apartado de Red, pincharemos sobre Avanzadas para que así nos muestre más opciones y le daremos a Reenvío de puertos.

Captura de pantalla 2022-07-18 a las 10 18 32

3 ◦ Pincharemos sobre el siguiente emoticono para agregar una regla de reenvío.

Captura de pantalla 2022-07-18 a las 10 21 24

4 ◦ Por último, agregaremos un puerto que no este en uso en la maquina anfitrión y el puerto 4242 al invitado. Las IP's no son necesarias. Pincharemos sobre el botón de aceptar para que así se apliquen los cambios. Esto lo que hara sera redirigir todo el trafico que llega al puerto que pongamos en la maquina anfitrion al puerto 4242 en la maquina invitada, es decir, nuestro Born2beroot.

Captura de pantalla 2022-07-18 a las 10 22 29

En este caso yo habia puesto el 4242 en el anfitrion pero si la maquina real en la que trabajamos ya esta utilizando ese puerto no nos funcionara. Utilizaremos el siguiente comando ss -tuln | grep -E '4242' para ver si el puerto ya esta siendo utilizando. Si nos aparece alguna linea significa que ese puerto se esta utilizando y hay que usar otro.

Screenshot from 2024-10-16 12-22-46

Probamos con el puerto 2222 para ver si ya se esta utilizando. Como no nos devuelve nada el comando significa que no esta siendo utilizado. Esta configuracion es diferente para cada campus ya que quizas en tu campus ya que igual utilizan algunos puertos para correr ciertos servicios. Una vez encontremos un puerto libre pues sera el que utilizaremos para el reenvio.

Screenshot from 2024-10-16 12-23-54

Actualizamos nuestro reenvio de puertos.

Screenshot from 2024-10-16 12-27-15

➤ Para poder conectarnos a la máquina virtual desde la real debemos abrir un terminal en la máquina real y escribir ssh gemartin@localhost -p [used port in host] nos pedirá la clave del usuario y una vez la introduzcamos ya nos saldrá el login en verde y eso significa que estaremos conectados.

🚨 Si el puerto 4242 ya se estaba usando debes poner el puerto que estes utilizando para el reenvio a la maquina virtual 🚨

Screen Shot 2022-10-27 at 12 40 23 AM

Screen Shot 2022-10-27 at 12 40 04 AM

⚠️ Si quieres conectarte por SSH con VMware ⚠️

1 ◦ Daremos click derecho sobre nuestra máquina y escogeremos la opción Connect to SSH.

Screen Shot 2023-12-07 at 6 54 01 AM

2 ◦ Una vez se nos abra la siguiente pestaña debemos rellenar todos los campos. En port debemos poner 4242 para indicar que queremos conectarnos por ese puerto. Los siguientes campos son el username de tu máquina, en mi caso gemartin, y la contraseña del usuario, en mi caso Hola42spain.

image

También podemos conectarnos mediante el terminal, pero debemos sustituir localhost por la IP de la máquina virtual. Quedaría algo así: ssh gemartin@10.11.250.100 -p 4242. Revisa la IP de tu máquina virtual y sustitúyela por la que pongo de ejemplo.

5- Script 🚨

Esta es una parte muy importante del proyecto. Debes prestar atención en todo, muy importante no copiar y pegar directamente el fichero sin saber que hace cada cosa. En la evaluación debes explicar cada comando si el evaluador lo pide.

🧠 Qué es un script❓ Es una secuencia de comandos guardada en un fichero que cuando se ejecuta hará la función de cada comando.

5-1 Architecture

Para poder ver la arquitectura del SO y su versión de kernel utilizaremos el comando uname -a ( "-a" == "--all" ) que básicamente printará toda la información, excepto si el tipo de procesador es desconocido o la plataforma de hardware.

Screen Shot 2022-10-27 at 4 50 06 PM

5-2 Núcleos físicos

Para poder mostrar el número de núcleos físicos haremos uso del fichero /proc/cpuinfo el cual proporciona información acerca del procesador: su tipo, marca, modelo, rendimiento, etc. Usaremos el comando grep "physical id" /proc/cpuinfo | wc -l con el comando grep buscaremos dentro del fichero "physical id" y con wc -l contaremos las líneas del resultado de grep. Esto lo hacemos, ya que la manera de cuantificar los núcleos no es muy común. Si hay un procesador marcará 0 y si tiene más de un procesador, mostrará toda la información del procesador por separado, contando los procesadores usando la notación cero. De esta manera simplemente contaremos las líneas que hay, ya que es más cómodo cuantificarlo así.

Screen Shot 2022-10-27 at 4 50 49 PM

5-3 Núcleos virtuales

Para poder mostrar el número de núcleos virtuales es muy parecido al anterior. Haremos uso de nuevo del fichero /proc/cpuinfo , pero en este caso, utilizaremos el comando grep processor /proc/cpuinfo | wc -l. El uso es prácticamente el mismo al anterior, solo que en vez de contar las líneas de "physical id" lo haremos de processor. Lo hacemos así por el mismo motivo de antes, la manera de cuantificar marca 0 si hay un procesador.

Screen Shot 2022-10-27 at 4 55 48 PM

5-4 Memoria RAM

Para mostrar la memoria RAM haremos uso del comando free para así ver al momento información sobre la RAM, la parte usada, libre, reservada para otros recursos, etc. Para más info sobre el comando, pondremos free --help. Nosotros daremos uso de free --mega , ya que en el subject aparece esa unidad de medida (Megabyte). Es importante poner --mega y no -m. Con -m nos referiremos a la unidad de medida Mebibyte y no es la que especifica el subject.

Captura de pantalla 2022-08-02 a las 2 46 10

Una vez hemos ejecutado este comando debemos filtrar nuestra búsqueda, ya que no necesitamos toda la información que nos aporta, lo primero que debemos mostrar es la memoria usada, para ello haremos uso del comando awk que lo que hace este comando es para procesar datos basados en archivos de texto, es decir, podremos utilizar los datos que nos interesen de X fichero. Por último, lo que haremos será comparar si la primera palabra de una fila es igual a "Mem:" printaremos la tercera palabra de esa fila que será la memoria usada. Todo el comando junto sería free --mega | awk '$1 == "Mem:" {print $3}'. En el script el valor de retorno de este comando se lo asignaremos a una variable que concatenaremos con otras variables para que todo quede igual como especifica el subject.

Captura de pantalla 2022-08-02 a las 2 55 21

Para obtener la memoria total el comando es prácticamente igual al anterior, lo único que deberemos cambiar es que en vez de printar la tercera palabra de la fila queremos la segunda free --mega | awk '$1 == "Mem:" {print $2}'.

Captura de pantalla 2022-08-02 a las 3 00 02

Por última parte debemos calcular el % de memoria usada. El comando de nuevo es parecido a los anteriores, la única modificación que haremos en la parte del printeo. Como la operación para conseguir el tanto porciento no es exacta, nos puede dar muchos decimales y en el subject solo aparecen 2 así que nosotros haremos lo mismo, por eso utilizamos %.2f para que así solo se muestren 2 decimales. Otra cosa que quizás no sepas es en printf para que se muestre un % hay que poner %%. Todo el comando free --mega | awk '$1 == "Mem:" {printf("(%.2f%%)\n", $3/$2*100)}'.

Captura de pantalla 2022-08-02 a las 3 51 01

5-5 Memoria del disco

Para poder ver la memoria del disco ocupada y disponible utilizaremos el comando df que significa "disk filesystem", se utiliza para obtener un resumen completo del uso del espacio en disco. Como en el subject indica la memoria utilizada se muestra en MB, así que entonces utilizaremos el flag -m. Acto seguido haremos un grep para que solo nos muestre las líneas que contengan "/dev/" y seguidamente volveremos a hacer otro grep con el flag -v para excluir las líneas que contengan "/boot". Por último utilizaremos el comando awk y sumaremos el valor de la tercera palabra de cada línea para una vez sumadas todas las líneas printar el resultado final de la suma. El comando entero es el siguiente: df -m | grep "/dev/" | grep -v "/boot" | awk '{memory_use += $3} END {print memory_use}'.

Captura de pantalla 2022-08-03 a las 2 26 15

Para obtener el espacio total utilizaremos un comando muy parecido. Las únicas diferencias serán que los valores que sumaremos serán los $2 en vez de $3 y la otra diferencia es que en el subject aparece el tamaño total en Gb así que como el resultado de la suma nos da el número en Mb debemos transformarlo a Gb, para ello debemos dividir el número entre 1024 y quitar los decimales.

Screen Shot 2023-03-14 at 8 54 34 PM

Por último, debemos mostrar un porcentaje de la memoria usada. Para ello, de nuevo, utilizaremos un comando muy parecido a los dos anteriores. Lo único que cambiaremos es que combinaremos los dos comandos anteriores para tener dos variables, una que representa la memoria usada y la otra la total. Hecho esto haremos una operación para conseguir el tanto por ciento use/total*100 y el resultado de esta operación lo printaremos como aparece en el subject, entre paréntesis y con el símbolo % al final. El comando final es este: df -m | grep "/dev/" | grep -v "/boot" | awk '{use += $3} {total += $2} END {printf("(%d%%)\n"), use/total*100}'. Captura de pantalla 2022-08-03 a las 2 49 33

5-6 Porcentaje uso de CPU

Para poder ver el porcentaje de uso de CPU haremos uso del comando vmstat. Este muestra estadísticas del sistema, permitiendo obtener un detalle general de los procesos, uso de memoria, actividad de CPU, estado del sistema, etc. Podríamos poner si ninguna opción, pero en mi caso pondré un intervalo de segundos de 1 a 4. También daremos uso del comando tail -1, que este lo que nos va a permitir es que solo produzca el output la última línea, entonces de las 4 generadas solo se printará la última. Por último, solo printaremos la palabra 15 que es el uso de memoria disponible. El comando entero es el siguiente: vmstat 1 4 | tail -1 | awk '{print $15}'. El resultado de este comando solo es una parte del resultado final, ya que todavía hay que hacer alguna operación en el script para que quede bien. Lo que habría que hacer es a 100 restarle la cantidad que nos ha devuelto nuestro comando, el resultado de esa operación lo printaremos con un decimal y un % al final y ya estaría hecha la operación.

Captura de pantalla 2022-08-03 a las 0 33 39

5-7 Último reinicio

Para ver la fecha y hora de nuestro último reinicio haremos uso del comando who con el flag -b, ya que con ese flag nos mostrará por pantalla el tiempo del último arranque del sistema. Como ya nos ha pasado anteriormente, nos muestra más información de la que deseamos, así que filtraremos y solo mostraremos lo que nos interesa, para ello haremos uso del comando awk y compararemos si la primera palabra de una línea es "system" se printará por pantalla la tercera palabra de esa línea, un espacio y la cuarta palabra. El comando entero sería el siguiente: who -b | awk '$1 == "system" {print $3 " " $4}'.

Captura de pantalla 2022-08-02 a las 12 24 58

5-8 Uso LVM

Para checkear si LVM está activo o no haremos uso del comando lsblk, este nos muestra información de todos los dispositivos de bloque (discos duros, SSD, memorias, etc.) entre toda la información que proporciona podemos ver lvm en el tipo de gestor. Para este comando haremos un if, ya que o printaremos Yes o No. Básicamente la condición que buscamos será contar el número de líneas en las que aparece "lvm" y si hay más de 0 printamos Yes, si hay 0 se printará No. Todo el comando sería: if [ $(lsblk | grep "lvm" | wc -l) -gt 0 ]; then echo yes; else echo no; fi.

Captura de pantalla 2022-08-02 a las 22 38 43

5-9 Conexiones TCP

Para mirar el número de conexiones TCP establecidas. Utilizaremos el comando ss sustituyendo al ya obsoleto netstat. Filtraremos con el flag -ta para que solo se muestren las conexiones TCP. Por último haremos un grep para ver las que están establecidas, ya que también hay solo de escucha y cerraremos con wc -l para que cuente el número de líneas. El comando queda tal que así: ss -ta | grep ESTAB | wc -l.

Captura de pantalla 2022-08-03 a las 0 53 36

5-10 Número de usuarios

Daremos uso del comando users que nos mostrará el nombre de los usuarios que hay, sabiendo esto, pondremos wc -w para que cuente la cantidad de palabras que hay en la salida del comando. El comando entero queda así users | wc -w.

Captura de pantalla 2022-08-02 a las 12 33 29

5-11 Dirección IP y MAC

Para obtener la dirección del host haremos uso del comando hostname -I y para obtener la MAC haremos uso del comando ip link que se utiliza para mostrar o modificar las interfaces de red. Como aparecen más de una interfaz, IP's etc. Utilizaremos el comando grep para buscar lo que deseamos y así poder printar por pantalla solo lo que nos piden. Para ello pondremos ip link | grep "link/ether" | awk '{print $2}' y de esta manera solo printaremos la MAC.

Captura de pantalla 2022-08-02 a las 14 53 14

5-12 Número de comandos ejecutados con sudo

Para poder obtener el número de comandos que son ejecutados con sudo haremos uso del comando journalctl que este es una herramienta que se encarga de recopilar y administrar los registros del sistema. Acto seguido pondremos _COMM=sudo par así filtrar las entradas especificando su ruta. En nuestro ponemos _COMM , ya que hace referencia a un script ejecutable. Una vez tengamos filtrada la búsqueda y solo aparezcan los registros de sudo todavía deberemos filtrar un poco más, ya que cuando inicias o cierras sesión de root también aparece en el registro, entonces para terminar de filtrar pondremos un grep COMMAND y asi solo aparecerán las líneas de comandos. Por último pondremos wc -l para que asi nos salgan enumeradas las líneas. El comando entero es el siguiente: journalctl _COMM=sudo | grep COMMAND | wc -l). Para comprobar que funcione correctamente podemos correr el comando en el terminal, poner un comando que incluya sudo y volver a correr el comando y deberá incrementar el número de ejecuciones de sudo.

Captura de pantalla 2022-08-02 a las 23 50 39

5-13 Resultado total del script

⚠️ Recuerda no hacer copia y pega si no sabes el funcionamiento de cada comando ⚠️

#!/bin/bash

# ARCH
arch=$(uname -a)

# CPU PHYSICAL
cpuf=$(grep "physical id" /proc/cpuinfo | wc -l)

# CPU VIRTUAL
cpuv=$(grep "processor" /proc/cpuinfo | wc -l)

# RAM
ram_total=$(free --mega | awk '$1 == "Mem:" {print $2}')
ram_use=$(free --mega | awk '$1 == "Mem:" {print $3}')
ram_percent=$(free --mega | awk '$1 == "Mem:" {printf("%.2f"), $3/$2*100}')

# DISK
disk_total=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_t += $2} END {printf ("%.1fGb\n"), disk_t/1024}')
disk_use=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} END {print disk_u}')
disk_percent=$(df -m | grep "/dev/" | grep -v "/boot" | awk '{disk_u += $3} {disk_t+= $2} END {printf("%d"), disk_u/disk_t*100}')

# CPU LOAD
cpul=$(vmstat 1 2 | tail -1 | awk '{printf $15}')
cpu_op=$(expr 100 - $cpul)
cpu_fin=$(printf "%.1f" $cpu_op)

# LAST BOOT
lb=$(who -b | awk '$1 == "system" {print $3 " " $4}')

# LVM USE
lvmu=$(if [ $(lsblk | grep "lvm" | wc -l) -gt 0 ]; then echo yes; else echo no; fi)

# TCP CONNEXIONS
tcpc=$(ss -ta | grep ESTAB | wc -l)

# USER LOG
ulog=$(users | wc -w)

# NETWORK
ip=$(hostname -I)
mac=$(ip link | grep "link/ether" | awk '{print $2}')

# SUDO
cmnd=$(journalctl _COMM=sudo | grep COMMAND | wc -l)

wall "	Architecture: $arch
	CPU physical: $cpuf
	vCPU: $cpuv
	Memory Usage: $ram_use/${ram_total}MB ($ram_percent%)
	Disk Usage: $disk_use/${disk_total} ($disk_percent%)
	CPU load: $cpu_fin%
	Last boot: $lb
	LVM use: $lvmu
	Connections TCP: $tcpc ESTABLISHED
	User log: $ulog
	Network: IP $ip ($mac)
	Sudo: $cmnd cmd"

Script visto desde nano ↙️

Captura de pantalla 2022-08-03 a las 3 47 31

Resultado tras la ejecución del script ↙️

Captura de pantalla 2022-08-03 a las 3 46 15

6- Crontab ⏰

🧠 Qué es crontab? Es un administrador de procesos en segundo plano. Los procesos indicados serán ejecutados en el momento que especifiques en el fichero crontab.

Para tener correctamente crontab configurado debemos editar el fichero crontab con el siguiente comando sudo crontab -u root -e.

En el fichero debemos añadir el siguiente comando para que el script se ejecute cada 10 minutos */10 * * * * sh /ruta del script.

Captura de pantalla 2022-08-03 a las 4 40 18

Funcionamiento de cada parámetro de crontab:

m ➤ Corresponde al minuto en que se va a ejecutar el script, el valor va de 0 a 59.

h ➤ La hora exacta, se maneja el formato de 24 horas, los valores van de 0 a 23, siendo 0 las 12:00 de la medianoche. dom ➤ hace referencia al día del mes, por ejemplo se puede especificar 15 si se quiere ejecutar cada día 15.

dow ➤ Significa el día de la semana, puede ser numérico (0 a 7, donde 0 y 7 son domingo) o las 3 primeras letras del día en inglés: mon, tue, wed, thu, fri, sat, sun.

user ➤ Define el usuario que va a ejecutar el comando, puede ser root, u otro usuario diferente siempre y cuando tenga permisos de ejecución del script.

command ➤ Refiere al comando o a la ruta absoluta del script a ejecutar.

7- Signature.txt 📝

Para obtener la firma lo primero que debemos hacer es apagar la máquina virtual ya que una vez la enciendas o modifiques algo la firma cambiará.

Captura de pantalla 2022-08-03 a las 4 47 32

El siguiente paso será ubicarnos en la ruta donde tengamos el .vdi de nuestra máquina virtual.

Screen Shot 2022-08-03 at 4 57 37 AM

Por último haremos shasum nombremaquina.vdi y esto nos dara la firma. El resultado de esta firma es lo que tendremos añadir a nuestro fichero signature.txt para posteriormente subir el fichero al repositorio de la intra. Muy importante no volver a abrir la máquina ya que se modificara la firma. Para las correcciones recuerda clonar la máquina ya que asi podras encenderla sin miedo a que cambie la firma.

🧠 Qué es shasum❓ Es un comando que permite identificar la integridad de un fichero mediante la suma de comprobación del hash SHA-1 de un archivo.

Screen Shot 2022-08-03 at 4 58 48 AM

8- Bonus ⭐️

8.1- Particionado manual del disco

1 ◦ En el momento de escoger el particionado de disco, seleccionaremos manual. De esta manera podremos editar las particiones una a una.

Screen Shot 2022-10-23 at 4 30 48 PM

2 ◦ En este apartado nos muestra una descripción general de nuestras particiones y puntos de montaje. Actualmente, no tenemos particiones hechas. Para crear una nueva tabla de particiones debemos escoger el dispositivo donde queremos crearlas. En nuestro caso escogeremos el único disponible.

Screen Shot 2022-10-23 at 4 35 39 PM

3 ◦ Aceptamos el mensaje de confirmación. Básicamente, nos avisa que si ya hay particiones en el dispositivo serán eliminadas y que si estamos seguros de crear una nueva tabla de particiones vacía…

Screen Shot 2022-10-23 at 4 36 08 PM

4 ◦ Una vez hemos completado el paso anterior podemos ver como nos aparece nuestra tabla de particiones vacía. Ahora debemos configurarla, para ello debemos seleccionarla.

Screen Shot 2022-10-23 at 4 36 35 PM

5 ◦ Crearemos una nueva partición.

Screen Shot 2022-10-23 at 4 36 54 PM

Empezaremos creando esta:

image

6 ◦ Como bien indica el subject, el tamaño de la partición debe ser de 500 megabytes.

Screen Shot 2022-10-23 at 4 37 27 PM

7 ◦ Escogemos el tipo de la partición. Escogemos primaria ya que será la partición donde se encontrará instalado el Sistema Operativo.

Screen Shot 2022-10-23 at 4 37 38 PM

Descripción breve de todos los tipos de particiones:

Primaria: La única partición en la que puede estar instalada un SO. Solo puede haber 4 particiones primarias por disco duro o 3 primarias y una extendida.

Secundario/Extendida: Fue ideada para romper la limitación de 4 particiones primarias en un solo disco físico. Solo puede existir una partición de este tipo por disco, y solo sirve para contener particiones lógicas.

Lógica: Ocupa una porción de la partición extendida/primaria o la totalidad de la misma, la cual se ha formateado con un tipo específico de sistema de archivos (en nuestro caso usaremos ext4) y se le ha asignado una unidad, así el sistema operativo reconoce las particiones lógicas o su sistema de archivos. Puede haber un máximo de 23 particiones lógicas en una partición extendida, sin embargo, Linux, el SO con el que trabajamos actualmente, lo reduce a 15, más que suficientes para realizar este proyecto.

8 ◦ Seleccionaremos beginning ya que queremos que la nueva partición se cree al principio del espacio disponible.

Screen Shot 2022-10-23 at 4 37 52 PM

9 ◦ En la siguiente captura nos muestra los detalles de la partición. Modificaremos el punto de montaje al que específica el subject.

Screen Shot 2022-10-23 at 4 38 27 PM

10 ◦ Escogemos boot como el punto de montaje de nuestra partición.

Screen Shot 2022-10-23 at 4 38 49 PM

11 ◦ Terminamos de configurar la partición actual.

Screen Shot 2022-10-23 at 4 39 07 PM

12 ◦ Una vez hemos completado el paso anterior ya nos debe aparecer la partición. Ahora debemos crear una partición lógica con todo el espacio disponible del disco, que no tenga punto de montaje y que esté encriptada. Para ello seleccionamos el espacio libre donde queremos crearla.

Screen Shot 2022-10-23 at 4 39 37 PM

image

13 ◦ Creamos nueva partición.

Screen Shot 2022-10-23 at 4 39 58 PM

14 ◦ Seleccionamos el tamaño máximo.

Screen Shot 2022-10-23 at 4 40 26 PM

15 ◦ Seleccionamos el tipo de partición, en este caso lógica.

Screen Shot 2022-10-23 at 4 40 53 PM

16 ◦ Modificaremos el punto de montaje.

Screen Shot 2022-10-23 at 4 41 44 PM

17 ◦ Escogeremos la opción de no montarlo.

Screen Shot 2022-10-23 at 4 42 11 PM

18 ◦ Terminamos de configurar la partición actual.

Screen Shot 2022-10-23 at 4 42 41 PM

19 ◦ Configuraremos volúmenes encriptados. Para asi poder encriptar nuestra partición.

Screen Shot 2022-10-23 at 4 43 08 PM

20 ◦ Aceptamos el mensaje de confirmación.

Screen Shot 2022-10-23 at 4 43 27 PM

21 ◦ Creamos los volúmenes encriptados.

Screen Shot 2022-10-23 at 4 43 46 PM

22 ◦ Seleccionamos en que partición queremos realizar la encriptación.

Screen Shot 2022-10-23 at 4 44 06 PM

23 ◦ Terminamos de configurar la partición actual.

Screen Shot 2022-10-23 at 4 44 35 PM

24 ◦ Finalizamos, ya que no queremos crear más volúmenes encriptados.

Screen Shot 2022-10-23 at 4 44 49 PM

25 ◦ Aceptamos el mensaje de confirmación. Nos comenta que se encriptara todo lo que hay dentro de la partición y que no debe tardar mucho en terminar.

Screen Shot 2022-10-23 at 4 45 06 PM

26 ◦ Nos da igual si tarda mucho o poco, le damos a cancel, ya que no hay nada que encriptar, debido a que la partición está vacía.

Screen Shot 2022-10-23 at 4 45 27 PM

27 ◦ De nuevo deberemos poner una contraseña, esta vez será la frase de encriptación. Como te he comentado previamente deberás repetir el proceso y la debes anotar, ya que será importante en un futuro.

Screen Shot 2022-10-23 at 4 48 38 PM

28 ◦ Repetimos la frase de encriptación.

Screen Shot 2022-10-23 at 4 49 01 PM

29 ◦ Configuraremos el gestor de volúmenes lógicos.

Screen Shot 2022-10-23 at 4 50 17 PM

30 ◦ Aceptaremos en mensaje de confirmación, ya que estamos de acuerdo con que se guarden los cambios en el disco.

Screen Shot 2022-10-23 at 4 50 42 PM

31 ◦ Crearemos un nuevo grupo de volumen. Los grupos de volúmenes agrupan particiones.

Screen Shot 2022-10-23 at 4 52 04 PM

32 ◦ Introduciremos el nombre que queremos darle. LVMGroup tal y como indica el subject.

Screen Shot 2022-10-23 at 4 52 58 PM

33 ◦ Seleccionaremos la partición donde queremos crear el grupo.

Screen Shot 2022-10-23 at 4 53 22 PM

34 ◦ Ahora debemos crear todas las particiones lógicas. Al tener que repetir las mismas acciones varias veces hay capturas que no serán documentadas.

image

Screen Shot 2022-10-23 at 4 53 50 PM

35 ◦ Empezaremos escogiendo el grupo donde queremos que se creen. Seleccionamos el único disponible (el que acabamos de crear).

Screen Shot 2022-10-23 at 4 54 02 PM

36 ◦ El orden de la creación de las unidades lógicas será el mismo que indica el subject, asi que empezaremos por root y acabaremos por var-log. Entonces seleccionaremos el nombre del volumen lógico.

Screen Shot 2022-10-23 at 4 55 42 PM

37 ◦ Tamaño, como bien indica el subject, será de 10g.

Screen Shot 2022-10-23 at 4 56 21 PM

38 ◦ Repetimos el proceso para swap. Solo cambiaremos el nombre y el tamaño.

Screen Shot 2022-10-23 at 4 56 49 PM

Screen Shot 2022-10-23 at 4 57 26 PM

Screen Shot 2022-10-23 at 4 57 41 PM

Screen Shot 2022-10-23 at 4 58 11 PM

39 ◦ Repetimos el proceso para home. Solo cambiaremos el nombre y el tamaño.

Screen Shot 2022-10-23 at 4 58 57 PM

Screen Shot 2022-10-23 at 4 59 07 PM

Screen Shot 2022-10-23 at 5 01 13 PM

Screen Shot 2022-10-23 at 5 04 34 PM

40 ◦ Repetimos el proceso para var. Solo cambiaremos el nombre y el tamaño.

Screen Shot 2022-10-23 at 5 05 10 PM

Screen Shot 2022-10-23 at 5 05 30 PM

Screen Shot 2022-10-23 at 5 06 03 PM

41 ◦ Repetimos el proceso para srv. Solo cambiaremos el nombre.

Screen Shot 2022-10-23 at 5 06 14 PM

Screen Shot 2022-10-23 at 5 06 39 PM

Screen Shot 2022-10-23 at 5 06 57 PM

Screen Shot 2022-10-23 at 5 07 13 PM

42 ◦ Repetimos el proceso para tmp. Solo cambiaremos el nombre.

Screen Shot 2022-10-23 at 5 07 34 PM

Screen Shot 2022-10-23 at 5 07 46 PM

Screen Shot 2022-10-23 at 5 07 55 PM

Screen Shot 2022-10-23 at 5 08 19 PM

43 ◦ Por último repetimos el proceso para var-log. Solo cambiaremos el nombre y el tamaño.

Screen Shot 2022-10-23 at 5 08 34 PM

Screen Shot 2022-10-23 at 5 08 40 PM

Screen Shot 2022-10-23 at 5 08 59 PM

Screen Shot 2022-10-23 at 5 09 28 PM

44 ◦ Una vez hayamos completado todos los pasos anteriores finalizaremos la configuración del gestor de volúmenes lógicos.

Screen Shot 2022-10-23 at 5 09 51 PM

45 ◦ Ahora podemos observar como en el apartado donde nos muestran todas nuestras particiones y espacio libre ya aparecen todas las particiones lógicas que acabamos de crear. Bien , debemos configurar todas para seleccionar el sistema de archivos que queremos y el punto de montaje que indica el subject. De nuevo iremos por orden y seleccionaremos la primera que nos aparece que es home.

Screen Shot 2022-10-23 at 5 10 36 PM

46 ◦ Nos muestra la configuración de la partición. Debemos escoger un sistema de ficheros ya que actualmente no tiene.

Screen Shot 2022-10-23 at 5 10 55 PM

47 ◦ Escogemos el sistema de archivos Ext4, es el sistema de archivos más utilizado en distribuciones Linux.

Screen Shot 2022-10-23 at 5 11 18 PM

48 ◦ Ahora debemos seleccionar el punto de montaje.

Screen Shot 2022-10-23 at 5 11 44 PM

49 ◦ Seleccionamos home como bien indica el subject.

Screen Shot 2022-10-23 at 5 11 54 PM

50 ◦ Una vez ya lo hemos seleccionado terminaremos la configuración de la partición.

Screen Shot 2022-10-23 at 5 12 10 PM

51 ◦ De nuevo estos pasos se pueden volver muy repetitivos asique no comentare mucho. Repetimos todo igual (excepto el punto de montaje) para root.

Screen Shot 2022-10-23 at 5 13 36 PM

Screen Shot 2022-10-23 at 5 13 53 PM

Screen Shot 2022-10-23 at 5 14 08 PM

Screen Shot 2022-10-23 at 5 14 22 PM

Screen Shot 2022-10-23 at 5 14 39 PM

Screen Shot 2022-10-23 at 5 14 52 PM

52 ◦ Repetimos el proceso para srv y cambiaremos el punto de montaje.

Screen Shot 2022-10-23 at 5 15 05 PM

Screen Shot 2022-10-23 at 5 15 31 PM

Screen Shot 2022-10-23 at 5 15 37 PM

Screen Shot 2022-10-23 at 5 15 44 PM

Screen Shot 2022-10-23 at 5 15 52 PM

Screen Shot 2022-10-23 at 5 16 04 PM

53 ◦ Para swap haremos una excepción, ya el sistema de archivos será diferente. Seleccionamos swap.

Screen Shot 2022-10-23 at 5 16 32 PM

54 ◦ En el momento de seleccionar el sistema de archivos lo dejamos en swap area.

Screen Shot 2022-10-23 at 5 16 41 PM

55 ◦ Una vez realizado el paso anterior, terminaremos la configuración de la partición.

Screen Shot 2022-10-23 at 5 16 59 PM

Screen Shot 2022-10-23 at 5 17 09 PM

56 ◦ Ahora si volveremos a hacer lo mismo que antes, pero ahora lo haremos con tmp y cambiando el punto de montaje.

Screen Shot 2022-10-23 at 5 17 41 PM

Screen Shot 2022-10-23 at 5 17 49 PM

Screen Shot 2022-10-23 at 5 18 01 PM

Screen Shot 2022-10-23 at 5 18 08 PM

Screen Shot 2022-10-23 at 5 18 24 PM

Screen Shot 2022-10-23 at 5 18 40 PM

57 ◦ Repetimos de nuevo el proceso para var cambiando el punto de montaje.

Screen Shot 2022-10-23 at 5 19 13 PM

Screen Shot 2022-10-23 at 5 19 21 PM

Screen Shot 2022-10-23 at 5 19 28 PM

Screen Shot 2022-10-23 at 5 19 36 PM

Screen Shot 2022-10-23 at 5 19 51 PM

Screen Shot 2022-10-23 at 5 20 00 PM

58 ◦ Por último, repetimos de nuevo el proceso para var-log en este deberemos introducir manualmente el punto de montaje.

Screen Shot 2022-10-23 at 5 20 23 PM

image

image

image

image

image

image

59 ◦ Una vez hemos completado todos los pasos anteriores, ya casi hemos acabado, debemos darle a finalizar el particionado y asi se guarden todos los cambios en el disco.

image

60 ◦ Aceptamos el mensaje y asi se guardarán los cambios. Asegúrate que todas las particiones quedan igual que en la captura.

image

61 ◦ Seleccionamos la opción No , ya que no necesitamos paquetes adicionales.

Captura de pantalla 2022-07-13 a las 20 05 42

62 ◦ Escogemos nuestro País.

Captura de pantalla 2022-07-13 a las 20 14 23

63 ◦ Escogemos deb.debian.org , ya que teniendo en cuenta nuestra región es donde tendremos una mejor conexión.

Captura de pantalla 2022-07-13 a las 20 15 00

64 ◦ Esta opción la dejaremos vacía, le daremos directamente a Continue.

Captura de pantalla 2022-07-13 a las 20 17 24

65 ◦ Seleccionamos la opción No , ya que no queremos que los developers vean nuestras estadísticas, aunque sean anónimas.

Captura de pantalla 2022-07-13 a las 20 21 54

66 ◦ Quitaremos todas las opciones de software (con la barra espaciadora) y le daremos a Continue.

Captura de pantalla 2022-07-13 a las 20 24 17

67 ◦ Seleccionaremos Yes para instalar GRUB boot en el disco duro.

Captura de pantalla 2022-07-13 a las 20 26 24

68 ◦ Escogeremos el dispositivo para la instalación del cargador de arranque /dev/sda (ata_VBOX_HARDDISK).

Captura de pantalla 2022-07-13 a las 20 35 46

69 ◦ Le daremos a Continue para finalizar la instalación.

Captura de pantalla 2022-07-13 a las 20 39 30

70 ◦ Una vez hemos terminado con la instalación de Debian debemos configurar nuestra máquina virtual.

Click aquí para dirigirte a la configuración de la máquina virtual ⚙️

8.2 - WordPress y configuración de servicios 🌐

Lighttpd

🧠 Qué es Lighttpd❓ Es un servidor web diseñado para ser rápido, seguro, flexible, y fiel a los estándares. Está optimizado para entornos donde la velocidad es muy importante. Esto se debe a que consume menos CPU y memoria RAM que otros servidores.

1 ◦ Instalación de paquetes de lighttpd.

Screen Shot 2022-10-27 at 4 09 24 AM

2 ◦ Permitimos las conexiones mediante el puerto 80 con el comando sudo ufw allow 80.

Screen Shot 2022-10-27 at 4 15 24 AM

3 ◦ Checkeamos que realmente hayamos permitido. Debe aparecer el puerto 80 y allow.

Screen Shot 2022-10-27 at 4 15 45 AM

4 ◦ Para configurar el reenvío de puertos, añadimos una regla que incluya el puerto 8086 en el host y lo redirija al puerto 80 en la máquina invitada. Si no recuerdas cómo agregar reglas de reenvío de puertos Configuración de la máquina → Red → Reenvío de puertos → Replicar la captura.

image

WordPress

🧠 Qué es WordPress❓ Es un sistema de gestión de contenidos enfocado a la creación de cualquier tipo de página web.

1 ◦ Para instalar la última versión de WordPress primero debemos instalar wget y zip. Para ello haremos uso del siguiente comando sudo apt install wget zip.

🧠 Qué es wget❓ Es una herramienta de línea de comandos que se utiliza para descargar archivos de la web.

🧠 Qué es zip❓ Es una utilidad de línea de comandos para comprimir y descomprimir archivos en formato ZIP.

Screen Shot 2022-11-18 at 2 45 11 PM

2 ◦ Una vez hayamos instalado los paquetes nos debemos ubicar en la carpeta /var/www/ con el comando cd accederemos a ella cd /var/www. Si no existe la carpeta la creamos con mkdir.

Screen Shot 2022-11-18 at 2 45 53 PM

3 ◦ Una vez estemos en la ruta /var/www/ deberemos descargar la última versión de WordPress. Como mi idioma nativo es el español, yo seleccionaré la última versión en español. Utilizaremos el siguiente comando: sudo wget https://es.wordpress.org/latest-es_ES.zip.

Screen Shot 2022-11-18 at 2 47 00 PM

4 ◦ Descomprimimos el archivo que acabamos de descargar con el comando sudo unzip latest-es_ES.zip.

Screen Shot 2022-11-18 at 2 47 25 PM

5 ◦ Renombraremos la carpeta html y la llamaremos html_old. sudo mv html/ html_old/.

Screen Shot 2022-11-18 at 2 48 21 PM

6 ◦ Ahora renombraremos la carpeta wordpress y la llamaremos html. sudo mv wordpress/ html.

Screen Shot 2022-11-18 at 2 48 49 PM

7 ◦ Por último, estableceremos estos permisos en la carpeta html. Daremos uso del comando sudo chmod -R 755 html. El número 7 indica que el propietario tiene permisos de lectura, escritura y ejecución. El número 5 indica que el grupo y otros solo tienen permisos de lectura y ejecución.

Screen Shot 2022-11-18 at 2 49 17 PM

Mariadb

🧠 Qué es MariaDB❓ Es una base de datos. Se utiliza para diversos fines, como el almacenamiento de datos, el comercio electrónico, funciones a nivel empresarial y las aplicaciones de registro.

1 ◦ Instalaremos los paquetes con el comando sudo apt install mariadb-server

Screen Shot 2022-10-27 at 4 17 09 AM

2 ◦ Debido a que la configuración predeterminada deja su instalación de MariaDB poco segura, utilizaremos un script que proporciona el paquete mariadb-server para restringir el acceso al servidor y eliminar las cuentas no utilizadas. Ejecutaremos el script con el siguiente comando sudo mysql_secure_installation. Una vez ejecutemos el script nos hará una serie de preguntas. Preguntará si deseamos cambiar a la autenticación de socket de Unix. Como ya tenemos una cuenta root protegida escribiremos N.

Switch to unix_socket autentication? → N
Change the root password? → N
Remove anonymous users? → Y
Disallow root login remotely? → Y
Remove test database and acces to it? → Y
Reaload privilege tables now? → Y

Screen Shot 2022-10-27 at 4 19 25 AM

Screen Shot 2022-10-27 at 1 00 20 AM

Screen Shot 2022-10-27 at 1 00 40 AM

Switch to unix_socket autentication? Escogemos N porque no deseamos que cambie a la auntenticación de socket de Unix, ya tenemos una cuenta root protegida.

Change the root password? Escogemos N. No deseamos cambiar la contraseña del usuario root. Por defecto no tenemos contraseña, pero en mariadb realmente no es root, ya que debemos darle permisos de administrador.

Remove anonymous users? Escogemos Y. Por defecto, cuando instalas mariadb tiene un usuario anónimo, lo que permite que cualquier persona inicie sesión en mariadb sin tener que crear una cuenta de usuario propia. Esto está diseñado para realizar pruebas y que la instalación sea más fluida. Cuando dejemos el entorno de desarrollo y queramos pasar a un entorno de producción, debemos eliminar los usuarios anónimos.

Disallow root login remotely? Escogemos Y. Al deshabilitar el inicio de sesión en root de forma remota evitaremos que alguien pueda adivinar la contraseña root. Solo podremos conectarnos al root desde localhost.

Remove test database and acces to it? Escogemos Y. De esta manera se eliminará la base de datos de prueba y cualquier usuario que tenga acceso a ella.

Reaload privilege tables now? Escogemos Y. Asi se recargarán las tablas de permisos de MySQL para que los cambios en la configuración de seguridad entren en vigor de inmediato.

1 ◦ Una vez hayamos terminado con la instalación de mariadb debemos crear la base de datos y el usuario para el WordPress. Lo primero debemos acceder a mariadb.

Screen Shot 2023-03-31 at 12 16 28 AM

2 ◦ Creamos una base de datos para el WordPress. En mi caso le voy a llamar wp_database. Todo esto lo hare con el comando CREATE DATABASE wp_database;.

Screen Shot 2023-03-31 at 9 53 17 PM

3 ◦ Para asegurarnos que se ha creado la base de datos para el WordPress, podemos ver todas las bases existentes con el comando SHOW DATABASES;.

Screen Shot 2023-03-31 at 9 54 04 PM

4 ◦ Acto seguido debemos crearemos un usuario dentro de la base de datos. Utilizaremos el comando CREATE USER 'gemartin'@'localhost' IDENTIFIED BY '12345';.

Screen Shot 2023-03-31 at 9 56 59 PM

5 ◦ Vinculamos el nuevo usuario a nuestra base de datos de manera que le otorguemos los permisos necesarios para poder trabajar. Daremos uso del comando GRANT ALL PRIVILEGES ON wp_database.* TO 'gemartin'@'localhost';.

Screen Shot 2023-03-31 at 10 01 32 PM

6 ◦ Actualizamos los permisos para que los cambios tengan efecto con el comando FLUSH PRIVILEGES;.

Screen Shot 2023-03-31 at 10 02 01 PM

7 ◦ Una vez hemos completado el paso anterior ya podemos salir de mariadb.

Screen Shot 2023-04-01 at 10 43 40 PM

PHP

🧠 Qué es PHP❓ Es un lenguaje de programación. Se utiliza principalmente para desarrollar aplicaciones web dinámicas y sitios web interactivos. PHP se ejecuta en el lado del servidor.

1 ◦ Instalamos los paquetes necesarios para poder ejecutar aplicaciones web escritas en lenguaje PHP y que necesiten conectarse a una base de datos MySQL. Ejecutaremos el siguiente comando sudo apt install php-cgi php-mysql.

Screen Shot 2023-03-31 at 10 07 04 PM

Configuración WordPress

1 ◦ Accedemos al directorio /var/www/html con el comando: cd /var/www/html

Screen Shot 2023-04-01 at 8 26 46 PM

2 ◦ Copiamos el fichero wp-config-sample.php y lo renombraremos wp-config.php

Screen Shot 2023-04-01 at 8 28 42 PM

3 ◦ Una vez lo hayamos renombrado, editaremos el fichero wp-config.php nano wp-config.php y modificaremos los siguientes valores.

Screen Shot 2023-04-01 at 8 42 25 PM

Hay que remplazarlos por los valores que hemos puesto anteriormente cuando creábamos la base de datos y el usuario para que WordPress pueda conectar y hacer uso de ella.

Screen Shot 2023-04-01 at 8 46 08 PM

4 ◦ Habilitamos el módulo fastcgi-php en Lighttpd para mejorar el rendimiento y la velocidad de las aplicaciones web en el servidor. sudo lighty-enable-mod fastcgi

image

5 ◦ Habilitamos el módulo fastcgi-php en Lighttpd para mejorar el rendimiento y la velocidad de las aplicaciones web basadas en PHP en el servidor. sudo lighty-enable-mod fastcgi-php

image

6 ◦ Actualizamos y aplicamos los cambios en la configuración con el comando sudo service lighttpd force-reload.

image

7 ◦ Una vez ya hemos completado los pasos anteriores podemos volver a dirigirnos a nuestro navegador y escribiremos localhost:8086. Esto lo que hará será conectarse a nuestra máquina virtual por el puerto 80, donde está corriendo el servidor de WordPress. La conexión al puerto 80 se realiza gracias al reenvío de puertos. Nos deberá salir lo siguiente:

image

image

Screen Shot 2023-04-01 at 8 00 38 PM

8 ◦ Debemos rellenar todos los campos. En mi caso he puesto lo siguiente:

Screen Shot 2023-04-01 at 8 02 29 PM

9 ◦ Una vez hayamos rellenado todos los campos debemos darle a Instalar WordPress y ya habremos terminado la instalación. Nos saldrá la siguiente pestaña. Ahora WordPress puede crear las tablas y volcar todos los datos que necesita para funcionar en la base de datos que le hemos asignado.

Screen Shot 2023-04-01 at 8 02 52 PM

10 ◦ Si accedemos de nuevo a nuestro localhost desde el navegador ya podemos ver nuestra página funcional.

Screen Shot 2023-04-01 at 9 02 51 PM

11 ◦ Si queremos acceder al panel de administrador para hacer cambios en nuestra página, deberemos poner en el navegador localhost/wp-admin e iniciaremos sesión con nuestra cuenta.

Screen Shot 2023-04-01 at 9 05 41 PM

Screen Shot 2023-04-01 at 9 06 44 PM

12 ◦ Una vez accedamos, ya podemos modificar lo que queramos a gusto propio. Personalizar la página es algo opcional, como no está especificado en el subject, en esta guía no se tratará nada al respecto.

Screen Shot 2023-04-01 at 9 07 38 PM

8.3 - Servicio adicional ➕

LiteSpeed ⚡️

🧠 Qué es LiteSpeed❓ Es un software de servidor web patentado. Es el cuarto servidor web más popular, y se estima que lo utiliza el 10% de los sitios web.

1 ◦ Antes de instalar cualquier software, es importante asegurarse de que el sistema esté actualizado.

sudo apt update

Screen Shot 2022-11-25 at 2 59 17 AM

sudo apt upgrade

Screen Shot 2022-11-25 at 3 00 18 AM

2 ◦ De forma predeterminada, OpenLiteSpeed está disponible en el repositorio base de Debian 11. Entonces, debes ejecutar el siguiente comando para agregar el repositorio OpenLiteSpeed a su sistema Debian:

wget -O - https://repo.litespeed.sh | sudo bash

Como el comando es largo me he conectado via ssh.

Screen Shot 2022-11-25 at 3 05 49 AM

3 ◦ De nuevo, actualizamos los paquetes e instalaremos OpenLiteSpeed.

sudo apt update

Screen Shot 2022-11-25 at 3 07 31 AM

sudo apt install openlitespeed

Screen Shot 2022-11-25 at 3 11 22 AM

4 ◦ La contraseña predeterminada para OpenLiteSpeed es 123456. Cambiaremos la contraseña a algo más seguro con el siguiente comando.

sudo /usr/local/lsws/admin/misc/admpass.sh

Screen Shot 2022-11-25 at 3 12 33 AM

5 ◦ Configuramos el firewall para permitir las conexiones mediante los puertos 8088 y 7080. Acto seguido agregaremos las reglas en el reenvío de puertos.

sudo ufw allow 8088/tcp

Screen Shot 2022-11-25 at 3 15 39 AM

sudo ufw allow 7080/tcp

Screen Shot 2022-11-25 at 3 15 59 AM

sudo ufw reload

Screen Shot 2022-11-25 at 3 16 18 AM

Reglas en el reenvio de puertos.

Screen Shot 2022-11-25 at 3 16 52 AM

6 ◦ Una vez completado el paso anterior ya podemos conectarnos. Pondremos en el buscador de nuestro navegador localhost:7080 proporcionamos nuestras credenciales de inicio de sesión y ya tendremos acceso a todo.

Screen Shot 2022-11-25 at 3 18 53 AM

Screen Shot 2022-11-24 at 8 49 24 PM




Este tutorial ha llevado mucho trabajo, si crees que te ha sido útil agradeceria mucho starred 🌟 para que así se comparta y pueda ayudar a más estudiantes 👨🏻‍🎓❤️




9- Hoja de corrección ✅

Screen Shot 2023-01-22 at 5 13 44 PM

Screen Shot 2023-01-22 at 5 14 52 PM

Screen Shot 2023-01-22 at 5 15 10 PM

Screen Shot 2023-01-22 at 5 15 22 PM

9-1 Respuestas de la evaluación 💯

▪️ Qué es una máquina virtual❓

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.

▪️ Porque has escogido Debian❓

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.

▪️ Diferencias básicas entre Rocky y Debian

182516961-c3e4da77-2db8-4737-a68f-27b033908705 (1) (1)

▪️ Cuál es el propósito de las máquinas virtuales❓

Su objetivo es el de 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.

▪️ Diferencias entre apt y aptitude ↙️

Aptitude es una versión mejorada de apt. APT es un administrador de paquetes de nivel inferior y aptitude es un administrador de paquetes de alto nivel. Otra gran diferencia es la funcionalidad que ofrecen ambas herramientas. Aptitude ofrece una mejor funcionalidad en comparación con apt-get. Ambos son capaces de proporcionar los medios necesarios para realizar la gestión de paquetes. Sin embargo, si se busca un enfoque con más características, debería ser, Aptitude.

▪️ Qué es APPArmor❓

Es un módulo de seguridad del kernel Linux que permite al administrador del sistema restringir las capacidades de un programa.

▪️ Qué es LVM❓

Es un gestor de volúmenes lógicos. 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.

9-2 Comandos de la evaluación ⌨️

1 ◦ Comprobar que no haya ninguna interfaz gráfica en uso.

Utilizaremos el comando ls /usr/bin/*session y nos debe aparecer el mismo resultado que en la captura. Si aparece algo diferente se está utilizando una interfaz gráfica.

Screen Shot 2022-11-25 at 12 00 02 AM

2 ◦ Comprobar que el servicio UFW está en uso.

sudo ufw status

Screen Shot 2022-11-24 at 1 25 06 AM

sudo service ufw status

Screen Shot 2022-11-24 at 1 25 37 AM

3 ◦ Comprobar que el servicio SSH está en uso.

sudo service ssh status

Screen Shot 2022-11-24 at 1 26 43 AM

4 ◦ Comprobar que utilizas el sistema operativo Debian o CentOS.

uname -v o uname --kernel-version

Screen Shot 2022-11-24 at 1 37 17 AM

5 ◦ Comprobar que tu usuario este dentro de los grupos "sudo" y "user42".

getent group sudo

getent group user42

Screen Shot 2022-11-24 at 3 26 30 AM

6 ◦ Crear un nuevo usuario y mostrar que sigue la política de contraseñas que hemos creado.

sudo adduser name_user e introducimos una contraseña que siga la política.

Screen Shot 2022-11-24 at 3 29 45 AM

7 ◦ Creamos un nuevo grupo llamado "evaluating".

sudo addgroup evaluating

Screen Shot 2022-11-24 at 3 30 47 AM

8 ◦ Añadimos el nuevo usuario al nuevo grupo.

sudo adduser name_user evaluating

Screen Shot 2022-11-24 at 3 33 08 AM

Para comprobar que se haya introducido correctamente.

Screen Shot 2022-11-24 at 3 33 31 AM

9 ◦ Comprobar que el hostname de la máquina es correcto login42.

Screen Shot 2022-11-24 at 3 37 27 AM

10 ◦ Modificar hostname para remplazar tu login por el del evaluador. En este caso lo reemplazaré por student42.

sudo nano /etc/hostname y remplazamos nuestro login por el nuevo.

Screen Shot 2022-11-24 at 3 42 30 AM

Screen Shot 2022-11-24 at 3 43 47 AM

sudo nano /etc/hosts y remplazamos nuestro login por el nuevo.

Screen Shot 2022-11-24 at 3 44 08 AM

Screen Shot 2022-11-24 at 3 44 35 AM

Reiniciamos la máquina.

Screen Shot 2022-11-24 at 3 44 58 AM

Una vez nos hemos logueado de nuevo podemos ver como el hostname se ha cambiado correctamente.

Screen Shot 2022-11-24 at 3 46 30 AM

11 ◦ Comprobar que todas las particiones son como indica el subject.

lsblk

Screen Shot 2022-11-24 at 3 52 17 AM

12 ◦ Comprobar que sudo está instalado.

which sudo

Screen Shot 2022-11-24 at 4 00 42 AM

Utilizar which realmente no es una buena práctica, ya que no todos los paquetes se encuentran en las rutas donde which busca, aun asi para la evaluación es mejor, ya que es un comando sencillo y fácil de aprender. Para un mejor uso haremos uso del siguiente comando:

dpkg -s sudo

Screen Shot 2022-11-24 at 4 02 13 AM

13 ◦ Introducimos el nuevo usuario dentro del grupo sudo.

sudo adduser name_user sudo

Screen Shot 2022-11-24 at 5 02 24 AM

Comprobamos que está dentro del grupo.

Screen Shot 2022-11-24 at 5 02 39 AM

14 ◦ Muestra la aplicación de las reglas impuestas para sudo por el subject.

Screen Shot 2022-11-24 at 5 12 02 AM

Screen Shot 2022-11-24 at 5 12 17 AM

15 ◦ Muestra que la ruta /var/log/sudo/ existe y contiene al menos un fichero, en este se debería ver un historial de los comandos utilizados con sudo.

Screen Shot 2022-11-24 at 5 17 54 AM

Screen Shot 2022-11-24 at 5 19 07 AM

Ejecuta un comando con sudo y comprueba que se actualiza el fichero.

Screen Shot 2022-11-24 at 5 23 08 AM

Screen Shot 2022-11-24 at 5 23 21 AM

16 ◦ Comprueba que el programa UFW está instalado en la máquina virtual y comprueba que funciona correctamente.

dpkg -s ufw

Screen Shot 2022-11-24 at 5 24 47 AM

sudo service ufw status

Screen Shot 2022-11-24 at 5 25 49 AM

17 ◦ Lista las reglas activas en UFW. Si no está hecha la parte bonus, solo debe aparecer la regla para el puerto 4242.

sudo ufw status numbered

Screen Shot 2022-11-24 at 5 27 50 AM

18 ◦ Crea una nueva regla para el puerto 8080. Comprueba que se ha añadido a las reglas activas y acto seguido puedes borrarla.

sudo ufw allow 8080 para crearla

Screen Shot 2022-11-24 at 5 31 35 AM

sudo ufw status numbered

Screen Shot 2022-11-24 at 5 31 59 AM

Para borrar la regla debemos utilizar el comando sudo ufw delete num_rule

Screen Shot 2022-11-24 at 5 33 15 AM

Comprobamos que se ha eliminado y vemos el numero de la siguiente regla que hay que borrar.

Screen Shot 2022-11-24 at 5 33 41 AM

Borramos de nuevo la regla.

Screen Shot 2022-11-24 at 5 34 03 AM

Comprobamos que solo nos quedan las reglas requeridas en el subject.

Screen Shot 2022-11-24 at 5 34 11 AM

19 ◦ Comprueba que el servicio ssh esta instalado en la máquina virtual, que funciona correctamente y que solo funciona por el puerto 4242.

which ssh

Screen Shot 2022-11-24 at 5 37 25 AM

sudo service ssh status

Screen Shot 2022-11-24 at 5 40 34 AM

20 ◦ Usa SSH para iniciar sesión con el usuario recién creado. Asegúrate de que no puede usar SSH con el usuario root.

Intentamos conectarnos por SSH con el usuario root, pero no tenemos permisos.

Screen Shot 2022-11-24 at 5 44 07 AM

Nos conectamos por SSH con el nuevo usuario con el comando ssh newuser@localhost -p [used port in host]

Screen Shot 2022-11-24 at 5 48 06 AM

21 ◦ Modifica el tiempo de ejecución del script de 10 minutos a 1.

Ejecutamos el siguiente comando para asi modificar el fichero crontab sudo crontab -u root -e

Screen Shot 2022-11-24 at 6 30 57 AM

Modificamos el primer paramentro, en vez de 10 lo cambiamos a 1.

Screen Shot 2022-11-24 at 6 31 44 AM

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

Screen Shot 2022-11-24 at 3 25 53 PM

Si queremos que vuelva a ejecutarse:

sudo /etc/init.d/cron start

Screen Shot 2022-11-24 at 3 27 38 PM

10- Tester 🆗

Comprueba que no te hayas dejado nada! Tester propio para checkear que la instalación y configuración se ha realizado exitosamente.

AQUÍ

Screen Shot 2023-03-09 at 3 40 54 AM

Autor ✍🏼

100px
gemartin

Intra 42

Contacto 📥

Contacta conmigo si crees que puedo mejorar el tutorial! Puede ayudar a futuros estudiantes! 😁

◦ Email: gemartin@student.42barcelona.com

◦ Linkedin: https://www.linkedin.com/in/gemartin99/

Quizás pueda interesarte!

- Para ver mi progresion en el common core 42 ↙️

AQUÍ

- Mi perfil en la intranet de 42 ↙️

AQUÍ

About

Tutorial to install Debian virtual machine with functional WordPress site with the following services: lighttpd, MariaDB, PHP and Litespeed.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages