Configuración de Rocky Linux 9#

Note

Configuración en VirtualBox#

Quitar imagen ISO de instalación#

Agregar interfaz host-only#

Configuración del portapapeles y drag and drop#

Configuración de aceleración 3D#

Creación de snapshot#


Configuración de la máquina virtual#

Información del sistema#

Configuración de repositorios#

  • Eleva privilegios utilizando su

    console [tonejito@rocky-9 ~]$ su - Password: [root@rocky-9 ~]#

  • Actualiza la lista de paquetes disponibles

    console [root@rocky-9 ~]# dnf makecache ... Metadata cache created.

Repositorio EPEL#

  • Instala el paquete epel-release para agregar el repostorio EPEL al sistema.

    ```console [root@rocky-9 ~]# dnf install epel-release ... ... ... Install 1 Package

    Total download size: 19 k Installed size: 26 k Is this ok [y/N]: y Downloading Packages: epel-release-9-10.el9.noarch.rpm 29 kB/s | 19 kB 00:00


    Total 21 kB/s | 19 kB 00:00 Rocky Linux 9 - Extras 904 kB/s | 1.7 kB 00:00 Importing GPG key 0x350D275D: Userid : "Rocky Enterprise Software Foundation - Release key 2022 releng@rockylinux.org" Fingerprint: 21CB 256A E16F C54C 6E65 2949 702D 426D 350D 275D From : /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 Is this ok [y/N]: y Key imported successfully

    ... ... ...

    Installed: epel-release-9-10.el9.noarch

    Complete! ```

  • Actualiza la lista de paquetes disponibles

    console [root@rocky-9 ~]# dnf makecache ... Metadata cache created.

Repositorio devel#

  • Habilita el repositorio devel para instalar el paquete network-scripts

    [root@rocky-9 ~]# dnf config-manager --enable devel

    <!--

    console [root@alma-linux-9 ~]# dnf -y install almalinux-release-devel ...

    console [root@alma-linux-9 ~]# dnf-config-manager --add-repo https://repo.almalinux.org/almalinux/9/devel/almalinux-devel.repo

    Warning

    Rocky Linux 9 no tiene el repositorio devel ni el paquete network-scripts, pero se puede utilizar el RPM de Rocky Linux 9 o Alma Linux 9

    • https://blog.racknerd.com/how-to-install-network-scripts-on-almalinux-9-rockylinux-9-and-centos-stream-9/

    -->

  • Actualiza la lista de paquetes disponibles

    console [root@rocky-9 ~]# dnf makecache ... Metadata cache created.

Configurar sudo#

  • Eleva privilegios utilizando su

    console [tonejito@rocky-9 ~]$ su - Password: [root@rocky-9 ~]#

  • Instala el paquete de sudo

    console [root@rocky-9 ~]# dnf install sudo Last metadata expiration check: 0:06:35 ago on Tue 22 Feb 2022 01:43:37 AM CST. Package sudo-1.8.29-8.el9.x86_64 is already installed.

  • Edita el archivo /etc/sudoers

    ```console

    visudo#

    ```

    Danger

    • Utiliza únicamente el programa visudo para editar el archivo /etc/sudoers, no lo intentes editar a mano con otro editor común de texto.
    • Si necesitas cambiar el editor, puedes exportar el nombre como variable de entorno: export EDITOR=vim
  • Modifica la línea para no requerir contraseña al ejecutar sudo

    ```text

    Allows people in group wheel to run all commands#

    %wheel ALL=(ALL) ALL#

    Same thing without a password#

    %wheel ALL=(ALL) NOPASSWD: ALL ```

  • Agrega a tu usuario al grupo wheel para que pueda elevar privilegios

    console [root@rocky-9 ~]# usermod -aG wheel tonejito

  • Verifica que el usuario esté en el grupo wheel

    console [root@rocky-9 ~]# groups tonejito tonejito : tonejito wheel

  • Reinicia la máquina virtual para aplicar los cambios

    console [root@rocky-9 ~]# reboot ...

Instalar SSH#

  • Instala el servicio de SSH

    console [root@rocky-9 ~]# dnf install openssh-server Last metadata expiration check: 0:03:25 ago on Tue 22 Feb 2022 01:43:37 AM CST. Package openssh-server-8.0p1-12.el9.x86_64 is already installed. Dependencies resolved. Nothing to do. Complete

  • Habilita el servicio de SSH

    console [root@rocky-9 ~]# systemctl enable --now sshd

  • Agrega una regla al firewall de host para permitir el tráfico de entrada SSH

    ```console [root@rocky-9 ~]# firewall-cmd --zone=public --permanent --add-service=ssh Warning: ALREADY_ENABLED: ssh success

    [root@rocky-9 ~]# firewall-cmd --reload success ```


Configura la interfaz de red host-only#

Opcional

Warning

Realiza estos pasos ÚNICAMENTE si tu interfaz host-only NO TIENE dirección IP y NO ESTÁ siendo administrada por Network Manager

  • Revisa que el sistema operativo reconozca la interfaz de red y que esta no se encuentre configurada

    Note

    En este ejemplo, la asignación de interfaces de red es la siguiente:

    • lo: loopback
    • enp0s3: NAT
    • enp0s8: host-only (esta es la interfaz que vas a configurar)

    console [root@rocky-9 ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:3c:7d:19 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3 valid_lft 83813sec preferred_lft 83813sec inet6 fe80::a00:27ff:fe3c:7d19/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:2a:29:14 brd ff:ff:ff:ff:ff:ff 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:7b:94:83 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever

  • Revisa el estado de las conexiones

    console [root@rocky-9 ~]# nmcli connection NAME UUID TYPE DEVICE enp0s3 4f2e1cb4-4772-3dcf-8e42-d5909cce579e ethernet enp0s3 enp0s8 391d86fd-2a82-38f2-a156-f25a70d34e8e ethernet enp0s8 lo 76541b23-a341-48d2-b092-9e2a98e89f5c loopback lo

  • Revisa el estado de los dispositivos

    console [root@rocky-9 ~]# nmcli device DEVICE TYPE STATE CONNECTION enp0s3 ethernet connected enp0s3 enp0s8 ethernet connected enp0s8 lo loopback connected (externally) lo

  • Crea el archivo /etc/sysconfig/network-scripts/ifcfg-enp0s8 con el siguiente conetenido

    Note

    • Verifica el nombre de tu interfaz de red
    • Este ejemplo utiliza la interfaz de red enp0s8

    console DEVICE=enp0s8 TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=no NAME=enp0s8 ONBOOT=yes

  • Instala los paquetes de compatibilidad para tener los comandos ifup e ifdown

    console [root@rocky-9 ~]# dnf install network-scripts NetworkManager-initscripts-updown ...

Verifica la configuración de las interfaces de red

- Levanta de manera manual tu interfaz de red

    ```console
    [root@rocky-9 ~]# ifup enp0s8
    WARN      : [ifup] You are using 'ifup' script provided by 'network-scripts', which are now deprecated.
    WARN      : [ifup] 'network-scripts' will be removed in one of the next major releases of RHEL.
    WARN      : [ifup] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
    ```

- Verifica que la interfaz de red esté configurada

    !!! note
        En este ejemplo, la asignación de interfaces de red es la siguiente:

        - `lo`: _loopback_
        - `enp0s3`: NAT
        - `enp0s8`: _host-only_

    ```console
    [root@rocky-9 ~]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
        valid_lft forever preferred_lft forever
    2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 08:00:27:3c:7d:19 brd ff:ff:ff:ff:ff:ff
        inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
        valid_lft 83693sec preferred_lft 83693sec
        inet6 fe80::a00:27ff:fe3c:7d19/64 scope link noprefixroute
        valid_lft forever preferred_lft forever
    3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 08:00:27:2a:29:14 brd ff:ff:ff:ff:ff:ff
        inet 172.28.128.8/24 brd 172.28.128.255 scope global dynamic noprefixroute enp0s8
        valid_lft 592sec preferred_lft 592sec
        inet6 fe80::a00:27ff:fe2a:2914/64 scope link
        valid_lft forever preferred_lft forever
    4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
        link/ether 52:54:00:7b:94:83 brd ff:ff:ff:ff:ff:ff
        inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
        valid_lft forever preferred_lft forever
    ```

    !!! note
        Puede que no te aparezca la interfaz de red `virbr0`

Instalar software#

  • Instala las herramientas de Python en el sistema

    console [root@rocky-9 ~]# dnf install python3 python3-devel python3-pip ...

  • Instala las herramientas de red en el sistema

    console [root@rocky-9 ~]# dnf install tcpdump nmap netcat ngrep dsniff wget curl whois bind-utils net-tools iproute iptables iptables-services iputils traceroute ethtool ...

Instalar wireshark#

  • Instala wireshark utilizando dnf

    console [root@rocky-9 ~]# dnf install wireshark wireshark-cli ...

  • Verifica que exista el grupo de usuarios wireshark

    console [root@rocky-9 ~]# getent group wireshark wireshark:x:972:

  • Agrega tu usuario al grupo wireshark

    console [root@rocky-9 ~]# usermod -aG wireshark tonejito

  • Verifica que tu usuario pertenezca al grupo

    console [root@rocky-9 ~]# groups tonejito tonejito : tonejito wheel wireshark

Configuración de las herramientas de VirtualBox para Linux#

  • Instala las herramientas de desarrollo para compilar los módulos de kernel

    ```console [root@rocky-9 ~]# dnf groupinstall "Development tools" ...

    [root@rocky-9 ~]# dnf install make zstd dkms kernel-headers kernel-devel kernel-devel-$(uname -r) ```

  • Inserta la imagen ISO de las utilerías de VirtualBox en la máquina virtual

  • Verifica que la imagen ISO se encuentre montada en /run/media/tonejito/VBox_GAs_7.2.6/ o /media/cdrom

    Warning

    • El nombre de la carpeta puede ser diferente en otras versiones de VirtualBox

    console [root@rocky-9 ~]# lsblk --fs /dev/sr0 NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sr0 iso9660 Joliet VBox_GAs_7.2.6 2026-01-15-16-31-13-49 0 100% /run/media/tonejito/VBox_GAs_7.2.6

    Note

    • Monta la imágen ISO en el directorio si es necesario
    • En este caso tendrás que utilizar el directorio /media/cdrom o similar en lugar del directorio auto-montado en /run/media/tonejito/VBox_GAs_7.2.6
    ```console
    [root@rocky-9 ~]# mkdir -vp /media/cdrom
    mkdir: created directory '/media/cdrom'
    
    [root@rocky-9 ~]# mount -t iso9660 /dev/cdrom /media/cdrom
    mount: /media/cdrom: WARNING: source write-protected, mounted read-only.
    ```
    

    console [root@rocky-9 ~]# ls -lA /run/media/tonejito/VBox_GAs_7.2.6/ total 46923 dr-xr-xr-x 2 root root 792 Nov 22 09:24 cert dr-xr-xr-x 2 root root 1824 Nov 22 09:24 NT3x dr-xr-xr-x 2 root root 2652 Nov 22 09:24 OS2 -r--r--r-- 1 root root 763 Feb 20 2020 AUTORUN.INF -r-xr-xr-x 1 root root 6384 Nov 22 09:17 autorun.sh -r-xr-xr-x 1 root root 4821 Nov 22 09:17 runasroot.sh -r--r--r-- 1 root root 592 Nov 22 09:24 TRANS.TBL -r--r--r-- 1 root root 3991991 Nov 22 09:21 VBoxDarwinAdditions.pkg -r-xr-xr-x 1 root root 3949 Nov 22 09:16 VBoxDarwinAdditionsUninstall.tool -r-xr-xr-x 1 root root 7443891 Nov 22 09:18 VBoxLinuxAdditions.run -r--r--r-- 1 root root 9420288 Nov 22 09:10 VBoxSolarisAdditions.pkg -r-xr-xr-x 1 root root 16890912 Nov 22 09:21 VBoxWindowsAdditions-amd64.exe -r-xr-xr-x 1 root root 270840 Nov 22 09:18 VBoxWindowsAdditions.exe -r-xr-xr-x 1 root root 9998128 Nov 22 09:19 VBoxWindowsAdditions-x86.exe -r--r--r-- 1 root root 259 Oct 4 10:48 windows11-bypass.reg

  • Ejecuta el script de instalación para compilar los módulos de kernel y habilitar los servicios

    ```console [root@rocky-9 ~]# cd /run/media/tonejito/VBox_GAs_7.2.6/ [root@rocky-9 VBox_GAs_7.2.6]# bash ./VBoxLinuxAdditions.run Verifying archive integrity... 100% MD5 checksums are OK. All good. Uncompressing VirtualBox 7.2.6 Guest Additions for Linux ... VirtualBox Guest Additions installer VirtualBox Guest Additions: Starting. VirtualBox Guest Additions: Setting up modules VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules. This may take a while. VirtualBox Guest Additions: To build modules for other installed kernels, run VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup VirtualBox Guest Additions: or VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup all VirtualBox Guest Additions: Building the modules for kernel 5.14.0-570.37.1.el9_6.x86_64.

    VirtualBox Guest Additions: Look at /var/log/vboxadd-setup.log to find out what went wrong VirtualBox Guest Additions: reloading kernel modules and services VirtualBox Guest Additions: kernel modules were not reloaded VirtualBox Guest Additions: kernel modules and services were not reloaded The log file /var/log/vboxadd-setup.log may contain further information. ```

    Warning

    • El error que se lanza es por una característica que tiene el kernel de Rocky Linux
      • Este error no debería afectar la funcionalidad de las utilerías de VirtualBox
    • Si aparece un error Kernel headers not found for target kernel actualizar el kernel actual, reiniciar la máquina e intentar de nuevo
    ```
    [root@rocky-9 ~]# dnf update kernel kernel-*
    ```
    

    Danger

    Si necesitas reintentar la instalación, desinstala las utilerías de VirtualBox, reinicla la máquina e intenta de nuevo

    ```console [root@rocky-9 ~]# /usr/sbin/vbox-uninstall-guest-additions ...

    [root@rocky-9 ~]# reboot ```

  • Lista los módulos de kernel para revisar que se hayan compilado.

    console [root@rocky-9 ~]# ls -l /lib/modules/$(uname -r)/misc/ total 7972 -rw-r--r-- 1 root root 3234688 Sep 8 22:52 vboxguest.ko -rw-r--r-- 1 root root 2154488 Sep 8 22:52 vboxsf.ko -rw-r--r-- 1 root root 2770264 Sep 8 22:53 vboxvideo.ko

    Note

    No importa que falte el módulo vboxvideo.ko, sólo se utiliza para las siguientes características

    • Redimensionar la pantalla de la máquina virtual para que se ajuste al tamaño de la ventana
    • Soporte drag and drop para copiar archivos entre la máquina física y la virtual y viceversa
  • Reinicia el equipo y verifica que los módulos de kernel se carguen

    Note

    • En este punto ya podrías utilizar las funciones de resolución automática, portapapeles compartido, carpetas compartidas y arrastrar desde y hacia la máquina virtual para copiar archivos.

    console [root@rocky-9 ~]# lsmod | egrep -i 'v(irtual)?box' [root@rocky-9 ~]# lsmod | grep -i vbox vboxsf 90112 0 vboxvideo 32768 0 vboxguest 385024 3 vboxsf drm_vram_helper 20480 1 vboxvideo drm_ttm_helper 16384 2 drm_vram_helper,vboxvideo drm_kms_helper 266240 3 vmwgfx,drm_vram_helper,vboxvideo drm 585728 9 vmwgfx,drm_kms_helper,drm_vram_helper,vboxvideo,drm_ttm_helper,ttm

    Warning

    Si no te aparecen los módulos de kernel, intenta compilar para todas las versiones de kernel que tienes y reinicia la máquina

    [root@rocky-9 ~]# /sbin/rcvboxadd quicksetup all ...

    Note

    Si aún después de reiniciar la máquina no te aparecen los módulos de VirtualBox, intenta forzar la carga desde el directorio /etc/modules-load.d/ y reiniciar la máquina

    ``` [root@rocky-9 ~]# ls -1 /lib/modules/$(uname -r)/misc/ | sed -e 's/.ko//g' > /etc/modules-load.d/99-virtualbox

    [root@rocky-9 ~]# dracut --regenerate-all -f ...

    [root@rocky-9 ~]# reboot ```

Servicios de VirtualBox en la máquina virtual#

Revisa que los servicios de las utilerías de VirtualBox estén iniciados en el sistema después de haber reiniciado la máquina

[root@rocky-9 ~]# systemctl list-units | egrep 'UNIT|v(irtual)?box' UNIT LOAD ACTIVE SUB DESCRIPTION vboxadd.service loaded active exited vboxadd.service vboxadd-service.service loaded active running vboxadd-service.service

Warning

Habilitar los servicios en caso de que no esten iniciados, reiniciar la máquina y verificar de nuevo

console [root@rocky-9 ~]# systemctl daemon-reload [root@rocky-9 ~]# systemctl enable vboxadd.service vboxadd-service.service

Revisa el estado del servicio vboxadd.service

``` [root@rocky-9 ~]# systemctl status --full --no-pager vboxadd.service ● vboxadd.service Loaded: loaded (/opt/VBoxGuestAdditions-7.2.6/init/vboxadd; enabled; preset: disabled) Active: active (exited) since Fri 2025-09-28 00:01:02 UTC; 1min ago Process: 602 ExecStart=/opt/VBoxGuestAdditions-7.2.6/init/vboxadd start (code=exited, status=0/SUCCESS) Main PID: 602 (code=exited, status=0/SUCCESS) CPU: 1.234s

Sep 28 00:01:02 rocky-9 systemd[1]: Starting vboxadd.service... Sep 28 00:01:02 rocky-9 vboxadd[602]: VirtualBox Guest Additions: Starting. Sep 28 00:01:02 rocky-9 systemd[1]: Finished vboxadd.service. ```

Revisa el estado del servicio vboxadd-service.service

``` [root@rocky-9 ~]# systemctl status --full --no-pager vboxadd-service.service ● vboxadd-service.service Loaded: loaded (/opt/VBoxGuestAdditions-7.2.6/init/vboxadd-service; enabled; preset: disabled) Active: active (running) since Fri 2025-09-28 00:01:02 UTC; 1min ago Process: 937 ExecStart=/opt/VBoxGuestAdditions-7.2.6/init/vboxadd-service start (code=exited, status=0/SUCCESS) Tasks: 9 (limit: 11078) Memory: 4.0M CPU: 567ms CGroup: /system.slice/vboxadd-service.service └─123 /usr/sbin/VBoxService --pidfile /var/run/vboxadd-service.sh

Sep 28 00:01:02 rocky-9 systemd[1]: Starting vboxadd-service.service... Sep 28 00:01:02 rocky-9 vboxadd-service[937]: vboxadd-service.sh: Starting VirtualBox Guest Addition service. Sep 28 00:01:02 rocky-9 vboxadd-service.sh[950]: Starting VirtualBox Guest Addition service. Sep 28 00:01:02 rocky-9 vboxadd-service.sh[978]: VirtualBox Guest Addition service started. Sep 28 00:01:02 rocky-9 systemd[1]: Started vboxadd-service.service. ```

Configuración de carpeta compartida con la máquina física#

  • Agrega tu usuario al grupo vboxsf

    console [root@rocky-9 ~]# usermod -aG vboxsf tonejito

  • Reinicia la máquina

    console [root@rocky-9 ~]# reboot

  • Una vez que las utilerías de VirtualBox se encuentren configuradas en la máquina virtual, puedes compartir carpetas

Note

Para montar la carpeta compartida de manera manual se utiliza este comando

console [root@rocky-9 ~]# mkdir -vp /mnt/shared [root@rocky-9 ~]# mount -t vboxsf Public /mnt/shared

Puedes usar este comando para probar la carpeta compartida, pero las utilerías de VirtualBox deberían montarla de manera «automágica» al reiniciar la máquina virtual.

  • Verifica que la carpeta compartida esté en la ubicación que seleccionaste

    • Puedes crear algunos archivos o directorios y ver que aparezcan en la máquina física y en la virtual

      console [root@rocky-9 ~]# mount | grep vbox Public on /mnt/shared type vboxsf (rw,nodev,relatime,iocharset=utf8,uid=0,gid=973,dmode=0770,fmode=0770,tag=VBoxAutomounter)

    Warning

    • La carpeta compartida se monta de manera predeterminada con privilegios restrictivos
    • Puedes agregar una entrada a /etc/fstab con la información de montaje que está en /etc/mtab y ajustarla con los identificadores uid y gid de tu usuario

Info

  • Cuando hayas terminado de configurar la máquina Rocky Linux, captura la información de los entregables y envíala en un merge request al repositorio de tareas