Informacion
Requerimientos:
- IOU WEB official Gtihub Repo
- Virtualbox | VMware
- CentOS OVA
Limites:
- No puedes usar SSH para Localhost (Problemas con ssl outdate) (Practicamente un Problema de 32 bits)
- No tiene todas las imagenes disponibles, Workarround: Particion Nueva con BIN para explorar nuevas topologias
[WIP]
- Uso de mas de 2 interfaces (tengo que entender como funciona y lo entiende virtualbox), supongo que configurar ifcfg-eth0-4
- No funciona con
Libvirt/Qemu
por problemas con el kernel
Mejoras:
- IP Automatica al iniciar
- IOU WEB Actualizado (1.2.2-23)
- IOU WEB, Base de datos limpia, logs limpios, y arregla tiempos de espera
- Permite Paravirtualizacion (KVM), "Adios Heredado"
- SSL Funciona para resolver https | vea "limites"
- Drivers Graficos Instalados
- Paquetes Base VaultCentOS Actualizado a [6.10] y Kernel a 6.7 [2.6.32-573] completamente funcional + Repo Epel-Release para mas paquetes
- Instalacion Mejoras de Virtualbox (Guest-Additions-ISO) y VMWare Tools (Repo Arreglado)
- No IPTABLES, No Firewall (flush)
- Hora y Fecha Sincronizadas con NTP
- No DUP Ping ^^
- Particion Swap Eliminada
Ayuda
- Saber que son los errores
tcgetattr:Invalid argument
yUNIX ERR:tcgetattr:Invalid argument
al encender Dispositivos, no parecen afectar el funcionamiento - Debido al uso de 32 bits, las librerias OpenSSL, GCC estan desactualizadas, lo que genera errores de ssh con la propia maquina, se necesita compilar GCC12 para compilar OpenSSL 3.x y asi poder actualizar ssh
Informacion Externa (Gracias)
- Using IOU-WEB by Thomas Low - Link
- Cisco L3 and L2 IOUs running on Fedora Linux by Radovan Brezula - Link
- Deploy Cisco IOU web interface on vSphere - Link
Datos
- Busca nombre del paquete
rpm -qa | grep <package-search-name>
- Desinstala paquetes sin eliminar ni buscar dependencias
rpm -e --nodeps <exact-name-package>
- Instala un paquete
rpm -ivh <package.rpm>
- Revisa las flags activas de CPU
grep -E 'vmx|svm' /proc/cpuinfo
lscpu
grep flags /proc/cpuinfo
- Compatibilidad Kernel:
Aparecera Grub, pero no iniciara, ni responde y quedara con una pantalla en negro, posiblemente se deba a problemas con la deteccion en /lib/modules/[network,modeset,block,etc]
Estas son las versiones que no funcionan
6.10: [2.6.32-754.35.1.el6.i686]
6.9: [2.6.32-696.el6.i686]
6.8: [2.6.32-642.el6.i686]
Las versiones compatibles son <6.7 2.6.32-573, donde el kernel pasa de integrar 27 entradas a 59 entradas
6.7 [2.6.32-573.el6.i686]
(lsmod -> 59)IOU: [2.6.32-358.23.2.el6.i686]
(lsmod -> 27 - ~46)
Instalacion
- Configura Idioma, edita
/etc/sysconfig/i18n
y modificaLANG="en_US.UTF-8"
por:
- Configura el teclado modificando
/etc/sysconfig/keyboard
y configura:
Repositorios
- Elimina repositorios de yum y crea un repositorio para descargar la ultima version compatible del kernel
cd /etc/yum.repos.d/
rm -f /etc/yum.repos.d/CentOS-*
touch kernel.repo
- Habilita la descarga de paquetes para la version 6.7 desde CentosVault
- Habilita y actualiza el repositorio
yum clean all
yum repolist
- Actualiza los paquetes relacionados con el kernel
yum install kernel kernel-firmware kernel-devel kernel-headers
- Modifica
/etc/yum.conf
para denegar la actualizacion del kernel
- Elimina el archivo
kernel.repo
para que no entre en conflicto con el nuevo repositorio
rm -f /etc/yum.repos.d/kernel.repo
- Reinicia la maquina virtual y selecciona el kernel
6.7 [2.6.32-573.el6.i686
con las flechas arriba o abajo desde el inicio de grub
reboot
- Inicias sesion y verificas que tengas la version adecuada "
6.7 [2.6.32-573.el6.i686
"
uname -r
- Elimina los viejos kernel, yum no borrara el kernel con el cual inicias sesion
yum remove kernel
- Modifica
/boot/grub/grub.conf
para permitir el correcto inicio de grub
Para poder iniciar mas rapido, no recomiendo dejar el valor "timeout=0
" porque en caso de fallo, no tendras como acceder a grub.
- Configura
/etc/yum.repos.d/Vault-centOS.repo
para permitir la actualizacion de los demas paquetes
[base]
name=CentOS-Vault - Base
baseurl=http://archive.kernel.org/centos-vault/6.10/os/i386/
enabled=1
gpgcheck=0
[updates]
name=CentOS-Vault - Updates
baseurl=http://archive.kernel.org/centos-vault/6.10/updates/i386/
enabled=1
gpgcheck=0
[extras]
name=CentOS-Vault - Extras
baseurl=http://archive.kernel.org/centos-vault/6.10/extras/i386/
enabled=1
gpgcheck=0
[contrib]
name=CentOS-Vault - Contrib
baseurl=http://archive.kernel.org/centos-vault/6.10/contrib/i386/
enabled=1
gpgcheck=0
- Configura
/etc/yum.repos.d/VMWare-tools.repo
, permitiendo los paquetes latest, solo debes tener 1 baseurl activo
- Actualiza los paquetes desde el nuevo repositorio
yum clean all
yum repolist
yum update
- Instala repositorio
epel-release
yum install epel-release
- Instala micro
curl https://getmic.ro | bash
mv micro /bin/
- Instala Grupos de Paquetes
yum groupinstall "Compatibility Libraries" "Development Tools"
- Instala Paquetes
yum install libvirt telnet-server xinetd cmake htop tmux screen byobu dvtm man php-gd php-xml httpd-devel pcre-devel dkms xclip xsel libcap-devel dosfstools openssl-devel yum-utils
- Compila bbe 0.2.2 (Permite modificar y parchear Binarios)
cd ~/git
git clone https://github.com/hdorio/bbe.git
cd bbe
./configure
make
make install
- Compila openSSH (Version limite por ssl 1.0.1 | Limite 32 bits) | Versiones Portables
La ultima version compatible es "openssh-9.5p1"
Nota: Contacte conmigo si conoce alguna manera sencilla de poder actualizar openssl y openssh a las ultimas versiones ^^
cd ~/
mkdir git
cd git
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
tar xvf openssh-9.3p1.tar.gz
rm -drf openssh-9.3p1.tar.gz
cd openssh-9-3p1
./configure
make
make install
reboot
- Arregle librerias para los router
Al actualizar CentOS, openssl/openssh cambia el nombre de la librerialibcrypto.so.4
alibcrypto.so.10
ls /usr/lib/ | grep libcrypto
ln /usr/lib/libcrypto.so.10 /usr/lib/libcrypto.so.4
- Instala VirtualBox Guest ISO
Debes buscar en el Repositorio de virtualbox la version que tienes instalada en el host
Nota: Los comandos/sbin/rcvboxadd quicksetup all
y/sbin/rcvboxadd setup
, son para hacer el mismo proceso que se hace al instalar, es innecesario si ya funciono con el comando./VboxLinuxAdditions.run
`
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
./VBoxLinuxAdditions.run
dmesg
cat /var/log/vboxadd-setup.log
Actualiza IOU-WEB
- Desactiva HTTPD
service httpd stop
- Clona el repositorio dentro de la carpeta
~/git
cd ~/git
git clone https://github.com/dainok/iou-web.git
cd iou-web
- Instala el archivo
iou-web-1.2.2-23.i386.rpm
Recomiendo tambien borrar/var/tmp
rm -drf /var/tmp
rpm -Uvh iou-web-1.2.2-23.i386.rpm
- Copia los archivos del repositorio en el sistema
rsync -Pavrh html /opt/iou/
cp bin/* /opt/iou/bin/
cp cgi-bin/* /opt/iou/cgi-bin/
- Crea Carpetas y crea archivos para evitar errores 404 en los logs
mkdir /opt/iou/html/iou-web
touch /opt/iou/html/iou-web/version
touch /opt/iou/html/iou-web/whatsnew
mkdir -p /opt/iou/html/iou-web/yum/repodata/
touch /opt/iou/html/iou-web/yum/repodata/repomd.xml
- Elimina el repositorio de iou-web (El sitio de actualizacion ya no es valido)
rm -f /etc/yum.repos.d/iou-web.repo
- Soluciona rutas de IOU WEB con Hardlinks
Puedes ver dentro de los logs los errores 404 sobre archivos no encontrados
cd /opt/iou/html/xinha/plugins/TableOperations
ln TableOperations.js table-operations.js
cd ../SuperClean
ln SuperClean.js super-clean.js
cd ../Linker
ln Linker.js linker.js
cd ../CharacterMap
ln CharacterMap.js character-map.js
cd ../SpellChecker
ln SpellChecker.js spell-checker.js
cd ../../../css/contextmenu
ln cmenu-gloss-semitrasparent-menu-item-hover.png cmenu-item-gloss-semitransparent-menu-item-hover.png
ln cmenu-xp-bg.gif cmenu-gloss-bg.gif
- (Opcional) Actualiza los permisos de IOU-WEB para que las rutas sean vistas para todos
chmod 755 -R /opt/iou
- Reinicia HTTPD
En la interfaz web, ve aDownloads
, luego apretaClear Sesion...
, te saldra una eleccion y le das enYes, Delete All
service httpd restart
Configuraciones
- Modifica
/etc/sysconfig/network-scripts/ifcfg-eth0
para cambiar el nombre de la interfaz por el correcto que seria eth0
- Reinicia la configuracion (No deberia aparecer
failed
)
service network reload
service network start
chkconfig network on
service network restart
chkconfig network on
- Modifica
/etc/rc.local
y agrega las siguientes reglas
- Modifica
/etc/hosts
, quitando las referencias a "routereflector" debido a que la pagina esta muerta. (Es una sola linea)
- Desactiva Selinux desde
/etc/selinux/config
, para evitar problemas con el sistema
SELINUX=disabled
- Borra las interfaces al apagar el computador, editando
/etc/rc.d/rc0.d/K01reboot
- Modifica los permisos del archivo
/etc/rc.d/rc0.d/K01reboot
chmod 755 /etc/rc.d/rc0.d/K01reboot
- Configura la zona horario y activa NTP
ln -sf /usr/share/zoneinfo/America/Santiago /etc/localtime
ntpdate pool.ntp.org
- Configura Telnet
passwd root
service xinetd start
chkconfig xinetd on
chkconfig telnet on
- Limpia el sistema con los archivos con +3 dias de antiguedad
df -BM
find /var/log -type f -mtime +3 -exec rm {} \;
yum clean all
rm -drf /tmp/*
df -BM
- (Opcional) Limpia y desactiva IPTABLES
iptables -L
iptables -F
iptables -X
iptables -L
service iptables status
- Revisa las flags de CPU para ver si ahora si estan activas
grep -E 'vmx|svm' /proc/cpuinfo
lscpu
grep flags /proc/cpuinfo
- Borra el Historial y Apaga la Maquina
echo "" > ~/.bash_history & history -wc && poweroff
Host Windows 10/11
Use Virtualbox para este tutorial, pero no es el mejor emulador de maquinas virtuales que exista en el mercado, por eso hay que modificar un par de cosas para que moleste lo menos posible
- Hypr-V da problemas para el funcionamiento optimo
Nota: Use solo el ultimo comando, no se que haran los otros 2, pero desactivara el uso de Hypr-V, no lo hagas si necesitas el uso de Hypr-V
Nota2: En caso de que falle el segundo comando, ejecutalo sin la bandera -all
DISM /Online /Disable-Feature:Microsoft-Hyper-V
PowerShell Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor -All
bcdedit /set hypervisorlaunchtype off
- Forzar la opcion de Virtualizacion por Hardware (Nested VT-X) en Windows
- Problemas relacionados pueden verse Aqui
cd C:\Program Files\Oracle\VirtualBox\
.\VboxManage modify "Virtual-Machine-Name" --nested-hw-virt on
- Forzar la opcion en Linux
VBoxManage modifyvm "Virtual-Machine-Name" --nested-hw-virt on
- Instala Virtualbox Addition
- Descarga
VBoxGuestAdditions_<version>.iso
| Para revisar la version, revisaVirtualbox > Ayuda > Acerca de Virtualbox
- Monta el Disco desde el explorador de archivos
- Instala
VBoxWindowsAdditions
ywindows11bypass
- Desmonta el disco
- Deshabilita la integridad de memoria desde
Seguridad de Windows > Seguridad del dispositivo > Aislamiento del nucleo
Puede leer acerca del aislamiento del nucleo Aqui
Putty
Recomiendo Instalar Putty en su version Snapshot e instalar directamente en C:\
y para el soporte de VNC, se necesita UltraVNC y configurar la ruta de instalacion en C:\
o modifica las rutas de instalacion en el archivo .reg para que funcione
La ruta del archivo por defecto de putty es: HKEY_CURRENT_USER>Software>SimonTatham>PuTTY>Sessions>Default%20Settigs
- Ve a
regedit
- y borra
HKEY_CURRENT_USER>Software>SimonTatham
- Abre
Putty.exe
y en la seccion deSaved Sessions
escribeDefault Settings
y dale en la opcionSave
, esto volvera a crear la ruta de regedit con un archivo con las configuraciones por defecto.
Modificar la configuracion de Putty
Putty permite modificar varias cosas, pero aqui dejare una guia de como configurar putty
Session
- Saved Session: Default Settings
Logging
- Session Logging: None
Bell
- Action to happen when a bell occurs: NONE
Windows
NOTA: Las lineas de scrollback son las lineas que guarda Putty, el default es 2000, pero con 500-1000 yo creo que queda mejor, un numero superior solo hara que funcione mas lento
- Columns: 100
- Rows: 40
- Lines of scrollback: 1000
Appearance
Nota: Para una mejor experiencia, instala "Hack" Nerd Font, luego instala HackNerdFont-Regular, HackNerdFontMono-Regular y HackNerdFontPropo-Regular
- Cursor Appearance: Vertical Line
- Cursor Blink: Checked
- Font: Change: Fuente: Hack Nerd Font Mono Regular | Estilo de Fuente: Normal | Tamaño: 12
- Font Quality: Default
Selection
- Assing Copy/Paste -> Ctrl+Shift + {C,V}: System Clipboard
Colours
Nota: Puedes ver colores aqui:
- Select a colour to adjust:
Configura para que el fondo sea casi negro y que los colores se vean bien, mas que nada para que sea comodo
"Colour0"="216,222,233"
"Colour1"="216,222,233"
"Colour2"="46,52,64"
"Colour3"="46,52,64"
"Colour4"="46,52,64"
"Colour5"="216,222,233"
"Colour6"="59,66,82"
"Colour7"="76,86,106"
"Colour8"="191,97,106"
"Colour9"="191,97,106"
"Colour10"="163,190,140"
"Colour11"="163,190,140"
"Colour12"="235,203,139"
"Colour13"="235,203,139"
"Colour14"="129,161,193"
"Colour15"="129,161,193"
"Colour16"="180,142,173"
"Colour17"="180,142,173"
"Colour18"="136,192,208"
"Colour19"="143,188,187"
"Colour20"="229,233,240"
"Colour21"="236,239,244"
Putty Putty-Registry.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\telnet]
@="URL:Telnet Putty"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\telnet\shell]
[HKEY_CLASSES_ROOT\telnet\shell\open]
[HKEY_CLASSES_ROOT\telnet\shell\open\command]
@="\C:\\putty.exe %1"
[HKEY_CLASSES_ROOT\ssh]
@="URL:SSH Putty"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ssh\shell]
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="\C:\\putty.exe %1"
[HKEY_CLASSES_ROOT\vnc]
@="URL:VNC Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\vnc\shell]
[HKEY_CLASSES_ROOT\vnc\shell\open]
[HKEY_CLASSES_ROOT\vnc\shell\open\command]
@="\"C:\\Program Files\\uvnc bvba\\UltraVNC\\vnc_wrapper.bat\" %1"
Configuracion Virtualbox
Sobre la configuracion, Asi lo deje comfigurado
General
Basico
- Nombre (El que quieras la verdad, aunque luego tendras que validarlo con VBoxManage y es mas sencillo sin espacios)
- Version (Red Hat 6.x (64 Bits o 32 Bits)), solo cambialo si te da algun error
Descripcion
- user: ??
pass: ??
Sistema
Placa Base
- Deja 4096 o 8196, depende cuanto sea tu maximo de ram
- Chipset: ICH9, me parece que es mas nuevo, y podria generar menos errores
- Dispositivo Apuntador: Tableta Multitactil USB, asi permite no "absorber el mouse", quedara libre cuando quieras hacer alguna otra cosa
- APIC: Habilitado, es para mejor compatibilidad en entornos Windows
- Reloj Hardware Tiempo UTC: Habilitado, Manda la hora a la maquina virtual, podria evitar errores de NTP, aunque esta corrido por configuraciones de IOU-WEB (TO-DO)
- EFI y Secure Boot: Desabilitado pk es BIOS; duh
Procesador
- Nucleos: El maximo que puedas, No es intensivo pero tareas multinucleo seran mejor recibidas por la maquina
- Limite de ejecucion: 100%, Nunca he movido esto en mi vida
- Caracteristicas Extendidas: Deberian estar con Ticket Ambas "PAE/NX" y "VT-X/AMD-V anidado"
Aceleracion
- Interfaz de Paravirtualizacion: "KVM" -> Esto es porque CentOS es linux, y le dice a tu maquina que el entorno de emulacion funciona con KVM, este es un paso gigante para el IOU web, antes no iniciaba si no era en Heredado, aunque la verdad, no se exactamente para que sirve, todos sirven, te recomiendo KVM
- Hardware de Virtualizacion: Habilitado, Permite emular emulaciones dentro de lo emulado (WOW)
Pantalla
Pantalla
- Memoria de Video: 24MB; es importante cuando estas en una GUI; si tienes problemas visuales, subelo a 48, si continuas, dejalo en 64mb
- Controlador Grafico: VMSVGA, tengo entendido que funciona mejor, ademas no hay errores
- Caracteristicas Extendidas: Habilita la Aceleracion 3D; asi no tendras problemas con pequeñas cosas que corren mejor en "3D", incluidas set de instrucciones
Almacenamiento
Controladora SATA
- Unidad de estado solido: Si tienes SSD -> Check, Si tienes Disco Duro -> No Check
Audio
La verdad no se usa el audio, pero dejalo activado, uno nunca sabe
Red
Adaptador 1
- Conectado a: "Adaptador Puente": Esta es la configuracion por defecto para hacer tareas y cosas, funciona bien y un 7, aunque hay veces en la que cambiarlo por "Red Solo Anfitrion" Como lo es en Seguridad, Recuerda crear una red
- Nombre: Aqui va el nombre de tu extension, Hay uno para el Ethernet y otro para Wifi, ten ojo al configurarlo, aunque usualmente se posiciona en el correcto
Avanzado
- Tipo de Adaptador: "Intel Pro/1000 MT Server (82545EM)" Porque no?
- Modo Promuisco: "Permitir Todo", Casi siempre debemos usar esa
- Direccion MAC: RENOVAR SIEMPRE
- Cable Conectado: Habilitado, por dios, imaginate desactivar esto, un terror
Puerto Serial
No los uso
USB
- Habilita Controlador USB, Obligatorio para que funcione la pantalla tactl emulada
- Version Controlador: 2.0 (OCHI+EHCI) Mayor Compatibilidad
Lo demas dejalo como esta
AYUDA
Agrega Modulos al Kernel
NOTA: No se como agregar estos modulos al kernel automaticamente de forma temprana, para no estar con un /etc/rc.local
con modprobe -a i915 drm
Modifica /etc/modules
y agrega
Despues dale permisos de ejecucion con chmod +x /etc/modules
i915
drm
Compilacion de Programas
GRUB2
PD: clang es 3.4.2-4 y gcc 4.4.7-23 por lo que tienes, asi que necesito compilar GCC, o podria instalar una version mas vieja de grub
Dependencias
yum install device-mapper-devel freetype-devel fuse-devel fuse3-devel grub2-tools-devel dejavu-sans-fonts clang gcc ninja-build glibc-static gmp-devel mpfr-devel libmpc-devel
OpenSSL
Compilar la version 1.1.1w (El limite de la dependencia realmente)
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
tar xvf openssl-1.1.1w.tar.gz
rm -drf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w/
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared
make
make install
reboot
Ojala algun dia poder instalar openssl-3 pero tiene problemas con perl
NOTA: IGNORAR, esta aqui porque 1.1.1w no esta soportado
wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
tar xvf openssl-3.0.13.tar.gz
rm -drf openssl-3.0.13.tar.gz
cd openssl-3.0.13
SSH
Compila el ssh desde la fuente (2024)
Puedes verlo aqui
NOTA: PROBARE CON openssh-9.7p1.tar.gz
cd
mkdir git
cd git
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
tar xvf openssh-9.7p1.tar.gz
rm -drf openssh-9.7p1.tar.gz
cd openssh-9-7p1
./configure
make
make install
reboot