<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0"><id>tag:blogger.com,1999:blog-3411654714210847372</id><updated>2026-03-10T12:35:39.933-04:00</updated><category term="Linux"/><category term="HowTO"/><category term="Tools"/><category term="Security"/><category term="Windows"/><category term="Internet"/><category term="Network"/><category term="Hardware"/><category term="Ubuntu"/><category term="Virtual"/><category term="bash"/><category term="Malware"/><category term="Backup"/><category term="Monitor"/><category term="Cloud"/><category term="Proxy"/><category term="Bug"/><category term="Firewall"/><category term="Apache"/><category term="Squid"/><category term="WiFi"/><category term="batch"/><category term="software"/><category term="WebApp"/><category term="DB"/><category term="git"/><category term="iptables"/><category term="virtualbox"/><category term="MariaDB"/><category term="MySQL"/><category term="apt"/><category term="encriptado"/><category term="full_audit"/><category term="hdd"/><category term="mantenimiento"/><category term="repair"/><category term="samba"/><category term="sync"/><category term="unifi"/><category term="vault"/><category term="Blockchain"/><category term="Codecs"/><category term="IOT"/><category term="Oracle"/><category term="PHP"/><category term="SQL"/><category term="Ubiquiti"/><category term="Video"/><category term="blackip"/><category term="cifrado"/><category term="drivers"/><category term="e-cigs"/><category term="ipv4"/><category term="ipv6"/><category term="licencias cautivas"/><category term="mooc"/><category term="printer"/><category term="usb"/><category term="zenity"/><title type="text">maravento</title><subtitle type="html">maravento studio</subtitle><link href="https://www.maravento.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default?redirect=false" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/" rel="alternate" type="text/html"/><link href="http://pubsubhubbub.appspot.com/" rel="hub"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default?start-index=26&amp;max-results=25&amp;redirect=false" rel="next" type="application/atom+xml"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><generator uri="http://www.blogger.com" version="7.00">Blogger</generator><openSearch:totalResults>139</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-3734489813589849179</id><published>2026-02-10T16:39:00.071-05:00</published><updated>2026-02-18T10:37:45.818-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="Squid"/><title type="text">Cache Híbrido en Squid Proxy</title><content type="html">&lt;div class="separator" style="clear: both;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoYciGkmV6Xy4othVbC6PB7v7HOSldjNrD9Kv_s2izG2SalEPSny-PghiqvL7va7595FeKtQZPLDBWhEFy0wWTzxXyVD7HWL7mDUvFbRDUkz2rho2HBUjB7dTZQtakvRDkluxx7oH2XWx2cKLQbWu5rHmawDf93K1DZ081_SiNVBS_BJpseILV-vJQB_81/s1200/squid-rock-ufs.jpeg" style="display: block; padding: 1em 0px; text-align: center;"&gt;
    &lt;img alt="" border="0" data-original-height="630" data-original-width="1200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoYciGkmV6Xy4othVbC6PB7v7HOSldjNrD9Kv_s2izG2SalEPSny-PghiqvL7va7595FeKtQZPLDBWhEFy0wWTzxXyVD7HWL7mDUvFbRDUkz2rho2HBUjB7dTZQtakvRDkluxx7oH2XWx2cKLQbWu5rHmawDf93K1DZ081_SiNVBS_BJpseILV-vJQB_81/s320/squid-rock-ufs.jpeg" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Squid se define como un "caching proxy"; de hecho su nombre real es &lt;a href="https://www.squid-cache.org/" target="_blank"&gt;squid-cache&lt;/a&gt;, por tanto todo gira en torno a la "cache" (sin tilde, para los puristas de la RAE, porque es un anglicismo técnico ampliamente aceptado en informática). &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Este proxy permite configurar múltiples directorios para la cache de manera simultánea, aprovechando las ventajas de diferentes sistemas de almacenamiento. En este post exploraremos dos configuraciones optimizadas que combinan &lt;b&gt;Rock&lt;/b&gt; (rápido, optimizado para SSD) y &lt;b&gt;UFS&lt;/b&gt; (tradicional, para objetos grandes) para maximizar el rendimiento de tu proxy. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;¿Por qué usar cache híbrido?&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;La estrategia de cache híbrido aprovecha lo mejor de dos mundos:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;b&gt;Rock&lt;/b&gt;: Extremadamente rápido para objetos pequeños y medianos (imágenes, CSS, JS, HTML)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;UFS&lt;/b&gt;: Eficiente para objetos grandes (videos, descargas, ISOs, actualizaciones)
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Esta separación permite que Squid sirva contenido frecuente desde Rock a velocidades SSD, mientras almacena archivos grandes en UFS sin desperdiciar espacio en cache rápido.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Requisitos Mínimos&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Hardware&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;b&gt;RAM mínima&lt;/b&gt;: 8 GB (4 GB para Squid + 4 GB para sistema operativo)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;Espacio en disco&lt;/b&gt;: Mínimo 150 GB libres &lt;ul&gt;
        &lt;li&gt;100 GB para cache Rock&lt;/li&gt;
        &lt;li&gt;50 GB para cache UFS&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;CPU&lt;/b&gt;: 2+ cores recomendados
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;Tipo de disco&lt;/b&gt;: SSD recomendado (HDD funciona pero más lento)
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Software&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Ubuntu 20.04+ / Debian 11+&lt;/li&gt;
    &lt;li&gt;Squid 5.0 o superior&lt;/li&gt;
    &lt;li&gt;Usuario &lt;code&gt;proxy&lt;/code&gt; creado por el paquete de Squid &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Red&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Servidor dedicado o con recursos compartidos controlados&lt;/li&gt;
    &lt;li&gt;Ancho de banda adecuado para el número de usuarios&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;Configuración 1: Servidor Compartido (4 GB RAM para Squid)&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;Ideal para servidores que ejecutan múltiples servicios (Apache, UniFi Controller, DHCP, bases de datos, etc.)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Configuración en &lt;code&gt;/etc/squid/squid.conf&lt;/code&gt;: &lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# ==================================================================
# MEMORIA Y CACHE
# ==================================================================
cache_mem 4096 MB
maximum_object_size_in_memory 8192 KB      # 8 MB
memory_replacement_policy heap LFUDA
cache_replacement_policy heap LFUDA
maximum_object_size 131072 KB              # 128 MB

# ==================================================================
# DIRECTORIOS DE CACHE
# ==================================================================
# Rock: objetos pequeños/medianos (≤ 5 MB)
cache_dir rock /var/spool/squid/rock 102400 max-size=5242880

# UFS: objetos grandes (5 MB - 128 MB)
cache_dir ufs /var/spool/squid/ufs 50000 16 256 min-size=5242881

# ==================================================================
# OPTIMIZACIONES
# ==================================================================
ipcache_size 2048
fqdncache_size 4096
memory_pools_limit 32 MB
max_filedescriptors 32768
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Script de instalación:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash

# Crear directorios de cache
mkdir -p /var/spool/squid/{rock,ufs} 2&amp;gt;/dev/null
chown -R proxy:proxy /var/spool/squid
chmod -R 700 /var/spool/squid

# Inicializar caches
squid -z

# Habilitar e iniciar servicio
systemctl enable squid 2&amp;gt;/dev/null
systemctl start squid

echo "Squid cache híbrido configurado correctamente"
&lt;/pre&gt;
&lt;h2&gt;Configuración 2: Servidor Dedicado (16 GB RAM para Squid)&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;Ideal para servidores dedicados exclusivamente a proxy o con recursos abundantes.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Configuración en &lt;code&gt;/etc/squid/squid.conf&lt;/code&gt;: &lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# ==================================================================
# MEMORIA Y CACHE
# ==================================================================
cache_mem 16384 MB                         # 16 GB
maximum_object_size_in_memory 8192 KB      # 8 MB
memory_replacement_policy heap LFUDA
cache_replacement_policy heap LFUDA
maximum_object_size 262144 KB              # 256 MB

# ==================================================================
# DIRECTORIOS DE CACHE
# ==================================================================
# Rock: objetos pequeños/medianos (≤ 5 MB)
cache_dir rock /var/spool/squid/rock 102400 max-size=5242880

# UFS: objetos grandes (5 MB - 256 MB)
cache_dir ufs /var/spool/squid/ufs 50000 16 256 min-size=5242881

# ==================================================================
# OPTIMIZACIONES
# ==================================================================
ipcache_size 4096
fqdncache_size 8192
memory_pools_limit 64 MB
max_filedescriptors 65536
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Script de instalación:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash

# Crear directorios de cache
mkdir -p /var/spool/squid/{rock,ufs} 2&amp;gt;/dev/null
chown -R proxy:proxy /var/spool/squid
chmod -R 700 /var/spool/squid

# Inicializar caches
squid -z

# Habilitar e iniciar servicio
systemctl enable squid 2&amp;gt;/dev/null
systemctl start squid

echo "Squid cache híbrido de alto rendimiento configurado"
&lt;/pre&gt;
&lt;h2&gt;Parámetros Explicados&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;cache_mem&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Memoria RAM dedicada para cachear objetos en memoria. No es el total de RAM que Squid usará (habrá overhead adicional).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;maximum_object_size_in_memory&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Tamaño máximo de un objeto individual para almacenarse en RAM. Objetos mayores van directo a disco.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;maximum_object_size&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Tamaño máximo global de objetos a cachear. Objetos mayores no se cachean.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;cache_dir rock&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;b&gt;102400&lt;/b&gt;: ~100 GB de espacio
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;max-size=5242880&lt;/b&gt;: Objetos hasta 5 MB (5,242,880 bytes)
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;cache_dir ufs&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;b&gt;50000&lt;/b&gt;: ~50 GB de espacio
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;16&lt;/b&gt;: Subdirectorios de primer nivel (00-0F en hexadecimal)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;256&lt;/b&gt;: Subdirectorios de segundo nivel
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;min-size=5242881&lt;/b&gt;: Solo objetos mayores a 5 MB
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Algoritmo LFUDA&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Least Frequently Used with Dynamic Aging - mantiene objetos frecuentemente accedidos, ideal para proxies con patrones de uso repetitivos.&lt;/div&gt;
&lt;h2&gt;Verificación de Funcionamiento&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;1. Verificar estructura de directorios&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Verificar que existan ambos directorios
ls -ld /var/spool/squid/rock /var/spool/squid/ufs

# UFS debe tener subdirectorios 00-0F
ls /var/spool/squid/ufs/
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Salida esperada:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;drwx------ 2 proxy proxy 4096 feb 9 12:57 rock
drwx------ 18 proxy proxy 4096 feb 9 12:57 ufs

00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;2. Verificar que Squid reconoce ambas capas de cache&lt;/b&gt;
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUuiF5-7C3a-BJ-rYy6IPMQtph2PU2EwNnej5sxnqGpUHtwtus5yrgLkIA0L6IH_lPaD8Mc6-aKCOexJG0JFlYVuqq94lR_3rD44syJSbFaUGga-k877Yv_UZpVMd7uncTnub2Bvum3QkN68bCakbThRyP2khOo_dKB2Qk8wAQJ89ChWXIM2HJx6XxgAcP/s1600/squid-rock.ufs-1.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="882" data-original-width="688" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUuiF5-7C3a-BJ-rYy6IPMQtph2PU2EwNnej5sxnqGpUHtwtus5yrgLkIA0L6IH_lPaD8Mc6-aKCOexJG0JFlYVuqq94lR_3rD44syJSbFaUGga-k877Yv_UZpVMd7uncTnub2Bvum3QkN68bCakbThRyP2khOo_dKB2Qk8wAQJ89ChWXIM2HJx6XxgAcP/s1600/squid-rock.ufs-1.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Funcionamiento del cache híbrido en un entorno en producción Ubuntu 24.04&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;pre class="prettyprint"&gt;squidclient -p 3128 mgr:storedir
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Salida esperada:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;Store Directory #0 (rock): /var/spool/squid/rock
FS Block Size 1024 Bytes
Maximum Size: 104857600 KB
Current Size: 83920.00 KB 0.08%

Store Directory #1 (ufs): /var/spool/squid/ufs
FS Block Size 4096 Bytes
First level subdirectories: 16
Second level subdirectories: 256
Maximum Size: 51200000 KB
Current Size: 32736.00 KB
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;
    &lt;i&gt;Nota:&lt;/i&gt;
  &lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Squid usa procesos "disk kids" separados. Ejemplo: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;kid1 (squid-1): Worker principal + UFS
kid2 (squid-disk-2): Gestor de Rock
kid3 (squid-coord-3): Coordinador
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;3. Verificar espacio usado&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo du -sh /var/spool/squid/rock /var/spool/squid/ufs
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Ejemplo de salida:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;1.4G    /var/spool/squid/rock
49M     /var/spool/squid/ufs
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;4. Verificar uso de RAM real&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;ps aux | grep '[s]quid' | awk '{sum+=$6} END {print "RAM Real: " sum/1024 " MB"}'
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Nota importante:&lt;/b&gt; El comando &lt;code&gt;systemctl status squid | grep Memory&lt;/code&gt; puede mostrar valores altos (40+ GB) que representan memoria &lt;b&gt;virtual&lt;/b&gt;, no RAM física real. Usa el comando &lt;code&gt;ps&lt;/code&gt; anterior para ver el consumo real.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;5. Monitorear en tiempo real&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Ver crecimiento de ambos caches
watch -n 30 "sudo du -sh /var/spool/squid/rock /var/spool/squid/ufs"
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;6. Script completo de verificación&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash

echo "═══════════════════════════════════════════════════"
echo "  VERIFICACIÓN DE CACHES SQUID"
echo "═══════════════════════════════════════════════════"
echo ""

echo "1. Configuración activa:"
grep "cache_dir" /etc/squid/squid.conf | grep -v "^#"
echo ""

echo "2. Espacio usado:"
sudo du -sh /var/spool/squid/rock /var/spool/squid/ufs
echo ""

echo "3. RAM real usada:"
ps aux | grep '[s]quid' | awk '{sum+=$6} END {print "Total: " sum/1024 " MB"}'
echo ""

echo "4. Store directories reconocidos:"
squidclient -p 3128 mgr:storedir | grep -E "Store Directory|Maximum Size|Current Size"
echo ""

echo "═══════════════════════════════════════════════════"
&lt;/pre&gt;
&lt;h2&gt;Interpretación de Resultados&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Distribución esperada de objetos&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;b&gt;Rock tendrá MÁS objetos&lt;/b&gt; (miles o millones): contenido web típico (HTML, CSS, JS, imágenes)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;UFS tendrá MENOS objetos&lt;/b&gt; (decenas o cientos): videos, descargas grandes, actualizaciones
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Ejemplo real:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;Rock:  1,699 objetos →  82 MB usado
UFS:      57 objetos →  32 MB usado
RAM:   2,203 objetos → 112 MB usado
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Crecimiento normal&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Con uso regular, después de días/semanas:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Configuración 4GB:&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Rock: 50-80 GB, millones de objetos&lt;/li&gt;
    &lt;li&gt;UFS: 10-30 GB, cientos/miles de objetos&lt;/li&gt;
    &lt;li&gt;RAM: 2-3 GB en uso real&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Configuración 16GB:&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Rock: 80-100 GB, millones de objetos&lt;/li&gt;
    &lt;li&gt;UFS: 30-50 GB, miles de objetos&lt;/li&gt;
    &lt;li&gt;RAM: 8-12 GB en uso real&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;Solución de Problemas Comunes&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Error: "WARNING: disk-cache maximum object size..."&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Causa:&lt;/b&gt;
  &lt;code&gt;maximum_object_size&lt;/code&gt; mayor que &lt;code&gt;cache_mem&lt;/code&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Solución:&lt;/b&gt; Asegúrate de que:
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;code&gt;cache_mem&lt;/code&gt; esté en &lt;b&gt;MB&lt;/b&gt;
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;maximum_object_size&lt;/code&gt; esté en &lt;b&gt;KB&lt;/b&gt;
    &lt;/li&gt;
    &lt;li&gt;Ejemplo: &lt;code&gt;cache_mem 4096 MB&lt;/code&gt; y &lt;code&gt;maximum_object_size 131072 KB&lt;/code&gt;
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Solo aparece un cache_dir en logs&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Verificar:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Ver configuración
grep "cache_dir" /etc/squid/squid.conf | grep -v "^#"

# Reinicializar
sudo systemctl stop squid
sudo rm -rf /var/spool/squid/{rock,ufs}/*
sudo squid -z
sudo systemctl start squid
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Uso excesivo de RAM (systemd muestra 40+ GB)&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; No es un problema real. Systemd muestra memoria virtual. Verificar RAM real: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;ps aux | grep '[s]quid' | awk '{sum+=$6} END {print sum/1024 " MB"}'
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Si el resultado es &amp;lt;2 GB para configuración de 4GB o &amp;lt;10 GB para 16GB, está funcionando correctamente.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;FATAL: assertion failed: Controller.cc&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En ocasiones, estas configuraciones fallan, porque Rock puede tener millones de entradas indexadas pero solo una cantidad ínfima objetos válidos. Esto sucede cuando los objetos expiran pero sus índices quedan, o hay corrupción por apagados incorrectos o el cache nunca se limpia adecuadamente. También puede aparecer este mensaje: &lt;code&gt;Rebuilding storage in /var/spool/squid/ufs (dirty log)&lt;/code&gt;. Misma causa; corrupción del store UFS (y adicional Squid 6.x tiene un bug conocido con transients + rebuild). La solución a esto es limpiar las caches (squid -z) y ajustar los parámetros y monitorear la cache de Squid para eventuales problemas e ir ajustando dichos valores a su entorno:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Ver uso de memoria en tiempo real
watch -n 2 'systemctl status squid | grep -E "Memory|CPU"'

# Ver objetos en cache
sudo squidclient -p 3128 mgr:storedir

# Ver info general
sudo squidclient -p 3128 mgr:info

# Monitorear Squid"
sudo journalctl -u squid -f

# Verificar memoria compartida vs real. Ejemplo:
cat /proc/$(pgrep -o squid)/status | grep -i "rss\|shared"
VmRSS:	  417596 kB
RssAnon:	    6776 kB
RssFile:	   16484 kB
RssShmem:	  394336 kB
# real
ps aux | grep '[s]quid' | awk '{sum+=$6} END {print "RSS total aparente: " sum/1024 " MB"}'
RSS total aparente: 761.672 MB
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Workers&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Los workers son procesos de Squid que trabajan en paralelo para atender peticiones de usuarios. La recomendación general es esta:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;Carga baja/media (&amp;lt; 1000 usuarios concurrentes):
bashworkers 2
Carga alta (1000-5000 usuarios):
bashworkers 3
Carga muy alta (&amp;gt; 5000 usuarios):
bashworkers 4  # Máximo recomendado para 6 CPUs
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;⚠️ Importante sobre workers:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Cada worker adicional consume más memoria compartida (mapeos) &lt;/li&gt;
    &lt;li&gt;NO pongas más de 4 workers con 6 CPUs (deja CPUs para el SO) &lt;/li&gt;
    &lt;li&gt;Con workers 2 + coordinador + disker = 4 procesos squid (perfecto para 6 CPUs) &lt;/li&gt;
    &lt;li&gt;Si no está seguro, no lo especifique en su archivo de configuración y Squid funcionará en modo single-process &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Ventajas de desactivar workers:&lt;/u&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;✅ Más simple: Un solo proceso, más fácil de debuggear &lt;/li&gt;
    &lt;li&gt;✅ Menos overhead: No hay coordinación entre procesos &lt;/li&gt;
    &lt;li&gt;✅ Memoria más clara: No hay confusión con memoria compartida &lt;/li&gt;
    &lt;li&gt;✅ Suficiente para + 500 usuarios: Un proceso bien optimizado maneja bastante &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Desventajas:&lt;/u&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;⚠️ Menos throughput: No aprovecha múltiples CPUs &lt;/li&gt;
    &lt;li&gt;⚠️ Cuello de botella: En redes grandes un solo proceso se satura &lt;/li&gt;
    &lt;li&gt;⚠️ No escala tan bien: Para alto tráfico necesitas workers &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;Consideraciones de Rendimiento&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Ventajas del cache híbrido&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;✅ &lt;b&gt;Velocidad:&lt;/b&gt; Rock sirve contenido frecuente a velocidad SSD &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;Eficiencia:&lt;/b&gt; UFS maneja archivos grandes sin desperdiciar espacio rápido &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;Escalabilidad:&lt;/b&gt; Fácil agregar más espacio a cualquier cache &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;Flexibilidad:&lt;/b&gt; Cada cache puede estar en discos diferentes &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Cuándo usar cada configuración&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Configuración 4GB&lt;/b&gt; si:
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Servidor con múltiples servicios&lt;/li&gt;
    &lt;li&gt;RAM limitada (8-32 GB total)&lt;/li&gt;
    &lt;li&gt;50-200 usuarios concurrentes&lt;/li&gt;
    &lt;li&gt;Presupuesto ajustado&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Configuración 16GB&lt;/b&gt; si:
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Servidor dedicado a proxy&lt;/li&gt;
    &lt;li&gt;RAM abundante (64+ GB)&lt;/li&gt;
    &lt;li&gt;200-1000+ usuarios&lt;/li&gt;
    &lt;li&gt;Máximo rendimiento requerido&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;Conclusión&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;La configuración híbrida Rock + UFS ofrece el mejor balance entre velocidad y capacidad para Squid. Con la configuración adecuada según tus recursos, puedes lograr:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Hit rates del 30-60% en redes típicas&lt;/li&gt;
    &lt;li&gt;Reducción significativa de ancho de banda&lt;/li&gt;
    &lt;li&gt;Tiempos de respuesta más rápidos&lt;/li&gt;
    &lt;li&gt;Mejor experiencia de usuario&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;h2&gt;Limitaciones&lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;Recuerde que estas configuraciones tienen límites. Siempre estará presente el fantasma del error &lt;code&gt;FATAL: assertion failed: Controller.cc&lt;/code&gt; por tanto deberá monitorear regularmente a Squid y el uso de cache para ajustar los parámetros según los patrones de uso de tu red.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Si usa Squid 6x y tiene un SSD, y este error se vuelve frecuente y su Squid se detiene sin previo aviso, hay dos opciones: O actualizar a la versión más reciente o desactivar una de las dos caches (preferentemente desactivar UFS y dejar Rock que es la más estable). A continuación cada caso:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Constantes independientes de RAM y disco
maximum_object_size 262144 KB
maximum_object_size_in_memory 512 KB

# Tamaño de la cache, asumiento que tiene un SSD mínimo de 500 GB con ~45–50 % libre
cache_dir rock /var/spool/squid/rock 200000 max-size=268435456 slot-size=32768

# Variable según RAM
cache_mem 8192 MB   # 64 GB
cache_mem 4096 MB   # 32 GB
cache_mem 2048 MB   # 16 GB

# Y finalmente:
sudo squid -k shutdown # o sudo service squid stop o sudo systemctl stop squid
sleep 5
# Nota: es mejor mantener las carpetas de cache individuales dentro de la ruta /var/spool/squid y en squid.conf
sudo rm -rf /var/spool/squid/rock/*
sudo squid -z
sudo systemctl start squid
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Tenga cuidado con estos parámetros, ya que puede salir el siguiente error:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;ERROR: /var/spool/squid/rock/rock exception: check failed: pending-&amp;gt;writeRequest-&amp;gt;len &amp;lt;= Ipc::Mem::PageSize() exception location: IpcIoFile.cc(381) push current master transaction: master11991
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Causa: cuando sube demasiado el slot-size. Ejemplo: &lt;code&gt;slot-size=65536&lt;/code&gt;. Significa 64 KB y esto puede romper en varias builds, ya que, en Squid 6.x, slot-size no puede ser arbitrariamente grande. Por tanto los valores anteriores son conservadores y evitan este error. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Un &lt;code&gt;slot-size=32768&lt;/code&gt; es el punto óptimo entre:
&lt;div style="text-align: justify;"&gt;
	&lt;ul&gt;
		&lt;li&gt;Fragmentación&lt;/li&gt;
        &lt;li&gt;IPC límite&lt;/li&gt;
        &lt;li&gt;Estabilidad&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Por otro lado, aunque la configuración híbrida Rock + UFS está técnicamente optimizada, es importante entender una limitación fundamental de Squid actualmente: &lt;b&gt;el 95%+ del tráfico web es HTTPS&lt;/b&gt;, lo cual significa que está &lt;b&gt;encriptado de extremo a extremo&lt;/b&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;¿Qué significa esto para tu cache?&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Cuando Squid maneja tráfico HTTPS sin SSL-Bump (interceptación SSL), solo actúa como un "túnel" ( &lt;code&gt;TCP_TUNNEL&lt;/code&gt;) que pasa el tráfico encriptado sin poder: &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;❌ Ver el contenido de las peticiones&lt;/li&gt;
    &lt;li&gt;❌ Cachear los objetos descargados&lt;/li&gt;
    &lt;li&gt;❌ Aplicar refresh_patterns&lt;/li&gt;
    &lt;li&gt;❌ Comprimir o optimizar contenido&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Ejemplo real de logs sin SSL-Bump:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Análisis de 1000 peticiones en un proxy de producción:
sudo tail -1000 /var/log/squid/access.log | awk '{print $4}' | sort | uniq -c | sort -rn

480 TCP_TUNNEL/200           48.0% ← HTTPS exitoso (NO cacheable sin SSL-Bump)
174 TCP_DENIED/403           17.4% ← Bloqueado por tus ACLs
167 TCP_TUNNEL/503           16.7% ← HTTPS fallido
82  TCP_MISS_ABORTED/503      8.2% ← Conexiones abortadas
25  NONE_NONE/000             2.5% ← Peticiones malformadas
18  TCP_CF_MISS_ABORTED/503   1.8% ← Collapsed forwarding abortado
17  TCP_MEM_HIT/200           1.7% ← ✅ HIT desde RAM
17  NONE_NONE/400             1.7% ← Peticiones inválidas
6   TCP_MISS/304              0.6% ← No modificado
5   TCP_MISS/200              0.5% ← Descargado (no en cache)
4   TCP_INM_HIT/304           0.4% ← ✅ HIT validado
3   TCP_HIT/200               0.3% ← ✅ HIT desde disco
1   TCP_REFRESH_UNMODIFIED    0.1% ← ✅ HIT refrescado
1   TCP_IMS_HIT/304           0.1% ← ✅ HIT if-modified-since
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;De 1000 peticiones:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Tráfico NO cacheable (85%):
480 + 167 = 647 HTTPS (64.7%) ← No se puede cachear sin SSL-Bump
174 bloqueados (17.4%)
82 + 18 abortados (10.0%)
# Tráfico potencialmente cacheable (15%):
17 + 6 + 5 = 28 HTTP real
26 HITs de 28 HTTP = 92.9% hit rate en HTTP ✅
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Dominios más frecuentes (todos HTTPS):&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;102 topapps-func.pinsightmedia.com:443   ← Puerto 443 = HTTPS
47  web.whatsapp.com:443                 ← Puerto 443 = HTTPS  
40  tlu.dl.delivery.mp.microsoft.com     ← Windows Update
27  ctldl.windowsupdate.com              ← Windows Update
23  web.whatsapp.com:5222                ← XMPP encriptado
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Comandos usados: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash

LINES=2000

echo "════════════════════════════════════════════════════════"
echo "  ANÁLISIS DE DOMINIOS - Últimas $LINES peticiones"
echo "════════════════════════════════════════════════════════"
echo ""

echo "▶ TOP 20 DOMINIOS MÁS USADOS:"
sudo tail -$LINES /var/log/squid/access.log | awk '{print $7}' | cut -d'/' -f3 | cut -d':' -f1 | sort | uniq -c | sort -rn | head -20
echo ""

echo "▶ TOP 15 DOMINIOS HTTPS (no cacheables):"
sudo tail -$LINES /var/log/squid/access.log | grep "TCP_TUNNEL" | awk '{print $7}' | cut -d'/' -f3 | cut -d':' -f1 | sort | uniq -c | sort -rn | head -15
echo ""

echo "▶ TOP 10 DOMINIOS CON CACHE HITS:"
sudo tail -$LINES /var/log/squid/access.log | grep -E "HIT" | awk '{print $7}' | cut -d'/' -f3 | cut -d':' -f1 | sort | uniq -c | sort -rn | head -10
echo ""

echo "▶ TOP 10 DOMINIOS BLOQUEADOS:"
sudo tail -$LINES /var/log/squid/access.log | grep "DENIED" | awk '{print $7}' | cut -d'/' -f3 | cut -d':' -f1 | sort | uniq -c | sort -rn | head -10
echo ""

echo "════════════════════════════════════════════════════════"
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Se puede cachear sin SSL-Bump?&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Aunque el panorama es limitado, todavía hay contenido valioso que cachear:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;✅ &lt;b&gt;Actualizaciones de Windows/Linux&lt;/b&gt;: Muchas aún usan HTTP o están permitidas para cache &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;Repositorios APT/YUM&lt;/b&gt;: Paquetes .deb, .rpm &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;CDNs específicos&lt;/b&gt;: Algunos servicios siguen usando HTTP &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;Contenido corporativo interno&lt;/b&gt;: Si controlas el servidor, puedes usar HTTP &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Hit rates realistas a la fecha:&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;b&gt;Sin SSL-Bump&lt;/b&gt;: 5-15% hit rate (principalmente actualizaciones de SO)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;Con SSL-Bump&lt;/b&gt;: 30-60% hit rate (requiere certificados en clientes)
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;¿Vale la pena el cache híbrido entonces?&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;SÍ, especialmente para:&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;✅ &lt;b&gt;Redes corporativas&lt;/b&gt; con muchos equipos Windows/Linux descargando actualizaciones &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;Instituciones educativas&lt;/b&gt; con laboratorios que se actualizan frecuentemente &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;Control y logs&lt;/b&gt; de acceso web (aunque no se cachee HTTPS, sí se registra) &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;Filtrado de contenido&lt;/b&gt; por dominio/IP (ACLs siguen funcionando) &lt;/li&gt;
    &lt;li&gt;✅ &lt;b&gt;Ahorro de ancho de banda&lt;/b&gt; en el 5-15% del tráfico cacheado (que puede ser considerable) &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Alternativa: SSL-Bump (Interceptación HTTPS)&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para cachear tráfico HTTPS, necesitas configurar SSL-Bump, que requiere:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Generar un certificado CA propio&lt;/li&gt;
    &lt;li&gt;Instalar el certificado en TODOS los dispositivos de la red&lt;/li&gt;
    &lt;li&gt;Configuración compleja en Squid (ssl_bump, sslcrtd)&lt;/li&gt;
    &lt;li&gt;Consideraciones legales/privacidad (interceptas tráfico encriptado)&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;⚠️ SSL-Bump NO se recomienda a menos que:&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Sea un ambiente corporativo totalmente controlado&lt;/li&gt;
    &lt;li&gt;Tengas autorización legal para interceptar tráfico&lt;/li&gt;
    &lt;li&gt;Puedas distribuir certificados a todos los dispositivos&lt;/li&gt;
    &lt;li&gt;Aceptes la complejidad técnica adicional&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Conclusión sobre HTTPS:&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;El cache híbrido Rock + UFS sigue siendo la configuración óptima técnicamente, pero las expectativas de hit rate deben ser realistas. En redes típicas sin SSL-Bump, esperar entre 5-15% de hit rate, principalmente de actualizaciones de sistemas operativos y aplicaciones. Esto sigue representando un ahorro significativo de ancho de banda, especialmente en redes con muchos dispositivos.&lt;/div&gt;
&lt;hr /&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/3734489813589849179" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/3734489813589849179" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2026/02/cache-hibrido-en-squid-proxy.html" rel="alternate" title="Cache Híbrido en Squid Proxy" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoYciGkmV6Xy4othVbC6PB7v7HOSldjNrD9Kv_s2izG2SalEPSny-PghiqvL7va7595FeKtQZPLDBWhEFy0wWTzxXyVD7HWL7mDUvFbRDUkz2rho2HBUjB7dTZQtakvRDkluxx7oH2XWx2cKLQbWu5rHmawDf93K1DZ081_SiNVBS_BJpseILV-vJQB_81/s72-c/squid-rock-ufs.jpeg" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-7840254355244868371</id><published>2025-11-15T16:07:00.216-05:00</published><updated>2026-03-03T14:49:15.692-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Monitor"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="Squid"/><category scheme="http://www.blogger.com/atom/ns#" term="vault"/><category scheme="http://www.blogger.com/atom/ns#" term="WebApp"/><title type="text">Precisión vs Marketing</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimGrsEoCjVZHYaeQbD5reftXAxN8CRiLe7adoOWdd4QxSivwwUaP43ozL5BwYLtUYUeLjLChdnreOUdIc-nCJZDVvGEcwfHIbqmCCfKtvDVzThFtGq95lWRCT_XPpf80Bw45jsLOGsALE6hsnh518Rp93DdMc3aKMFXItJIcJ1BuBrYcfPQgnEEB_g5UzB/s1024/precision_vs_marketing.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1024" data-original-width="1024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimGrsEoCjVZHYaeQbD5reftXAxN8CRiLe7adoOWdd4QxSivwwUaP43ozL5BwYLtUYUeLjLChdnreOUdIc-nCJZDVvGEcwfHIbqmCCfKtvDVzThFtGq95lWRCT_XPpf80Bw45jsLOGsALE6hsnh518Rp93DdMc3aKMFXItJIcJ1BuBrYcfPQgnEEB_g5UzB/s320/precision_vs_marketing.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Hace muchísimo tiempo atrás, cuando &lt;b&gt;&lt;a href="https://es.wikipedia.org/wiki/Squid_(programa)" target="_blank"&gt;Squid-Cache&lt;/a&gt;&lt;/b&gt; reinaba en oficinas, colegios, cabinas de internet y servidores caseros, existía un ecosistema vibrante de herramientas creadas por la comunidad para analizar, monitorear y domar al famoso proxy. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;La Era Dorada de Squid&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; En los años 2000 y principios de los 2010, Squid era absolutamente crítico en la infraestructura de red. El ancho de banda era escaso y costoso, especialmente en América Latina. Las corporaciones necesitaban caché para optimizar la experiencia de usuario, los colegios requerían control de acceso para filtrar contenido, y los cybercafés dependían de Squid para maximizar su rentabilidad. No era un lujo: era una necesidad técnica y económica, y fue así como se convirtió en guardián silencioso de miles de redes alrededor del mundo. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;El Ecosistema que Floreció&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Con ese imperio de Squid vino una explosión de herramientas artesanales: scripts, parsers, generadores de reportes. Programadores independientes creaban utilidades para responder preguntas vitales: ¿quién consume más ancho de banda? ¿Qué dominios visitamos? ¿Está el cache funcionando correctamente? Estas herramientas eran simples, enfocadas, y funcionaban. Algunos desarrolladores ganaban reputación en foros, listas de correo y SourceForge por mantener el código que otros necesitaban. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Pero, con el paso de los años, estos proyectos legendarios comenzaron a desvanecerse, sin despedidas formales, sin releases finale; simplemente dejaron de actualizarse. Entre ellos, auténticas joyas como: &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;b&gt;&lt;a href="https://sourceforge.net/projects/sarg/" target="_blank"&gt;SARG (Squid Analysis Report Generator)&lt;/a&gt;&lt;/b&gt;: Reportes HTML claros y detallados generados a partir del &lt;code&gt;access.log&lt;/code&gt;; quién navegó, qué visitó, cuánto consumió y qué bloqueó Squid. Fue el estándar de facto durante años. No está oficialmente E.P.D., pero parece un zombie. Su última actualización registrada fue en marzo de 2022, pero continúa vivo en los repositorios Debian/Ubuntu.&lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;
        &lt;a href="https://lightsquid.sourceforge.net/" target="_blank"&gt;LightSquid&lt;/a&gt; (E.P.D. 2009)&lt;/b&gt;: Un analizador ligero en Perl/CGI que convertía el &lt;code&gt;access.log&lt;/code&gt; en reportes rápidos por usuario o IP. Instalación fácil, interfaz sencilla… y un abandono silencioso que lo dejó detenido en el tiempo.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;
        &lt;a href="https://cord.de/calamaris-english" target="_blank"&gt;Calamaris&lt;/a&gt; (E.P.D. desconocido, pero muy antiguo)&lt;/b&gt;: Un clásico escrito en Perl, capaz de extraer estadísticas técnicas bellamente detalladas: métodos HTTP, dominios, picos de tráfico, tipos de contenido. Quedó congelado en sus últimas versiones, convertido en fósil digital.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;
        &lt;a href="https://samm.kiev.ua/sqstat/" target="_blank"&gt;SqStat&lt;/a&gt; (E.P.D. 2006)&lt;/b&gt;: Monitor en tiempo real usando &lt;code&gt;cachemgr&lt;/code&gt;, mostrando conexiones activas, URLs solicitadas y usuarios conectados. Una de las pocas herramientas "live" para Squid. Su código se detuvo abruptamente y nunca volvió a actualizarse.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;
        &lt;a href="https://es.wikipedia.org/wiki/Webalizer" target="_blank"&gt;Webalizer de Bradford L. Barrett&lt;/a&gt;&lt;/b&gt;: Herramienta escrita en C para analizar logs web y de proxy, incluyendo los de Squid, y generar reportes HTML con estadísticas por visitas, referencias, países y volumen de datos. Su desarrollo principal se detuvo el 26 de agosto de 2013 con la versión 2.23-08, aunque existen forks activos mantenidos por otros desarrolladores.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;
        &lt;a href="https://webmin.com/docs/modules/webalizer-logfile-analysis/" target="_blank"&gt;Webalizer-Squid&lt;/a&gt;&lt;/b&gt;: Un conjunto de parches y configuraciones para adaptar Webalizer específicamente a los logs de Squid. Permitía generar estadísticas más útiles que las del Webalizer estándar. Dejó de actualizarse cuando Webalizer empezó a decaer.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;squid-rrd (E.P.D. desconocido)&lt;/b&gt;: Script que recogía datos de Squid (connections, hits, cache, throughput) y los volcaba a gráficas RRD tipo MRTG. Muy popular en la era de Cacti/Nagios. La web original desapareció y no se ven actualizaciones desde hace más de una década.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;
        &lt;a href="https://www.rillion.net/squidview/" target="_blank"&gt;Squidview&lt;/a&gt; (E.P.D. 2017)&lt;/b&gt;: Programa para ver logs de Squid en tiempo real desde consola. Mostraba URL, IP, códigos HTTP y tamaños.&lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;
        &lt;a href="https://squidanalyzer.darold.net/" target="_blank"&gt;SquidAnalyzer&lt;/a&gt; (E.P.D. 2017)&lt;/b&gt;: Analizador de logs en Perl que generaba estadísticas en HTML, enfocado en tráfico, usuarios y dominios. El desarrollo oficial se detuvo en 2017, aunque recibió actualizaciones puntuales a través de repositorios de terceros.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;
        &lt;a href="https://github.com/paleg/sqtop" target="_blank"&gt;sqtop&lt;/a&gt; (E.P.D. 2015)&lt;/b&gt;: Parecido a un "top" para Squid que nunca pasó de versiones muy tempranas y quedó abandonado.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;Otros proyectos perdidos en el tiempo&lt;/b&gt;: Muchos otros son tan viejos que ya no hay referencias oficiales, como Proxy-Analyzer o ProxyAnalyzer, PySquid (murió con Python 2), quanalyzer (Squid Quantitative Analyzer), Squeezer (un generador de reportes minimalista para Squid, hecho en Perl), Squid Accounting Tool (SAT), una herramienta para contabilizar tráfico por usuario/IP a partir de los logs que desapareció junto con su sitio y repositorio, etcétera.
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;¿Por qué murió el ecosistema?&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; La muerte no fue repentina. Fue una lenta asfixia causada por cambios inevitables en la tecnología: El surgimiento de las &lt;b&gt;CDNs modernas&lt;/b&gt; (Cloudflare, Akamai, Fastly) hizo que el caché local fuera menos necesario. Las grandes corporaciones migraron su contenido a infraestructuras globales distribuidas. El ancho de banda se volvió más barato y accesible. Los hogares comenzaron a tener conexiones Mbps de 10, 20, 100..., suficientes para no necesitar un proxy lo optimizara. Pero el golpe más duro vino de &lt;b&gt;HTTPS y TLS&lt;/b&gt;. Con la adopción casi universal de conexiones cifradas, Squid ya no podía inspeccionar el contenido de manera transparente, analizar URLs o aplicar filtros granulares como lo hacía antes. Muchas de las métricas que generaban estas herramientas se volvieron opacas. Las estadísticas dejaron de ser confiables. El valor que ofrecían se desvaneció, y, aunque comenzó a soportar HTTPs, ya fue demasiado tarde. La migración masiva a &lt;b&gt;soluciones en la nube&lt;/b&gt; y la proliferación de webapps "todo en uno"&amp;nbsp;en lenguajes modernos (Go, Rust, Python 3) dejaron a Squid como una reliquia del pasado: poderoso, estable, pero anticuado. Entoces surgió la pregunta: ¿Para qué mantener un analizador de Squid si ya nadie usa Squid?. Y fue así como el ecosistema se vino abajo.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Lo que quedó&lt;/b&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt; Aquí yace la ironía: &lt;b&gt;Squid como software base sigue vivo&lt;/b&gt;. Recibe actualizaciones regulares en 2024 y 2025. La última versión es Squid 6.x con mejoras de seguridad y rendimiento. Pero su ecosistema —ese magnífico conjunto de herramientas que lo rodeaba— murió sin que nadie lo notara. Mientras tanto, herramientas modernas asumieron los roles: &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;b&gt;GoAccess&lt;/b&gt;: Análisis de logs en tiempo real, moderno, escrito en C, funciona con cualquier formato de log
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;ELK Stack&lt;/b&gt; (Elasticsearch, Logstash, Kibana): Solución empresarial para ingestión masiva de logs
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;Graylog&lt;/b&gt;: Alternativa a ELK, más ligera, más enfocada
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;Prometheus + Grafana&lt;/b&gt;: Monitoreo y visualización de métricas en tiempo real
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero estas herramientas son agnósticas respecto a la fuente de logs. No necesitan código específico para Squid. Funcionan con cualquier cosa que genere eventos.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;La Nostalgia de lo Perdido&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Lo más melancólico es que muchas de estas herramientas asesinadas eran brillantes en su simpleza. SARG generaba reportes HTML con un simple script; Calamaris extraía estadísticas en cuestión de segundos; LightSquid se instalaba y configuraba en menos de 5 minutos, Sqstat ofrecía el tráfico en tiempo real. Eran eficientes, respetuosas con los recursos, y hacían exactamente lo que prometían. La comunidad open source que las creó ni siquiera se despidió. No hubo previo aviso, ni migración ordenada de usuarios hacia alternativas. Los desarrolladores simplemente desaparecieron —hacia empleos corporativos, hacia otros proyectos, hacia el retiro, hacia el más allá...— dejando un reguero de cadáveres digitales en SourceForge o en cualquier otro repositorio.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Es un recordatorio amargo: en el software libre, la mortalidad no siempre es anunciada. A veces, simplemente sucede. Llama a la puerta un día y se da cuenta de que nadie ha actualizado el código en 15 años.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Squid en la Actualidad: La Supervivencia por Razones Económicas&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Squid no desapareció por completo. Sigue siendo utilizado, pero en escenarios muy específicos y con un propósito muy diferente al original.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;En pequeñas y medianas empresas, Squid continúa vigente principalmente como &lt;b&gt;filtro de tráfico&lt;/b&gt; y no como optimizador de ancho de banda, y la razón es puramente económica.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;La mayoría de los routers comerciales en el mercado actual (Mikrotik, Ubiquiti, Cisco, etc.) filtran o por firewall o por DNS, pero este filtrado es &lt;b&gt;lento y poco granular&lt;/b&gt;. No pueden inspeccionar contenido real, no pueden detectar patrones dentro de una conexión, no pueden bloquear de manera precisa y contextual. Un proxy como Squid, en cambio, inspecciona cada petición HTTP/HTTPS en detalle: puede bloquear un sitio específico, una palabra clave dentro de un dominio, un tipo de contenido particular. Es miles de veces más rápido y preciso.&amp;nbsp;&amp;nbsp;La ecuación es simple: &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;b&gt;Router con capacidad IDS/IPS&lt;/b&gt; = fuera del alcance de PYMES&lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;Router con firewall básico&lt;/b&gt; = barato, pero limitado (lo que usa la mayoría)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;Router con capacidad de proxy&lt;/b&gt; = solo para ricos y grandes presupuestos corporativos
    &lt;/li&gt;
    &lt;li&gt;
      &lt;b&gt;Squid&lt;/b&gt; = gratis y tan capaz como todos los anteriores&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Y esa es precisamente la razón —a nuestro juicio— del porqué Squid sigue vivo. Ningún hardware y software lo ha podido superar en ese aspecto. Es gratis, de código abierto, ofrece granularidad real, y funciona con máquinas recicladas. Para una PYME que necesita filtrado profesional y no tiene presupuesto para hardware dedicado, Squid es prácticamente imbatible. Es difícil competir contra eso, pero, paradójicamente, miles de PYMES en América Latina y Norteamérica invierten decenas de miles de dólares en firewalls y soluciones DNS "premium", y la gran mayoría desconoce que con un servidor viejo y cero inversión pueden implementar un filtrado técnicamente superior a todo lo que pagaron.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;El Poder del Marketing&lt;/b&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt; A las empresas le han vendido humo y les ha entrado hasta por donde no les da el Sol. Prefieren pagar por interfaces bonitas, llena de gráficas coloridas que por precisión real. Ahí radica el poder del marketing y su slogan: "mejorar la experiencia del usuario", lo que se traduce en "alimentar a su hambriento sistema de publicidad con toneladas de metadatos y telemetría invasiva"... Y si el software es diseñado en China, mucho peor, ya que le aplica la Ley de Inteligencia Nacional de 2017 de esa nación, que obliga a todas las organizaciones y ciudadanos a "apoyar, ayudar y cooperar con el esfuerzo de inteligencia nacional", o sea, a entregarle los datos a ese gobierno, sí o sí.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Squid representa la solución que nadie busca, pero que todos necesitarían si supieran que existe. Sin embargo, incluso este último bastión está bajo asedio.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Nuevas tecnologías están desplazando lentamente a Squid también del mercado PYME: los &lt;b&gt;portales cautivos&lt;/b&gt; (con sus hotspot) y los &lt;b&gt;filtros DNS&lt;/b&gt; (OpenDNS, Pi-hole, Adguard, NxFilter, etc.) han ganado terreno exponencialmente, no porque sean técnicamente superiores —de hecho, son profundamente inferiores—, sino por una razón completamente superficial pero determinante:&amp;nbsp;interfaz de usuario amigable y estadísticas atractivas.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; 
  &lt;b&gt;Pero ¿cómo funcionan exactamente estos filtros DNS?.&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Simple: interceptan las consultas DNS de la red e impiden que se resuelvan dominios bloqueados. Suena bien, pero en la práctica es brutalmente ineficiente y limitado, ya que: &lt;/div&gt;&lt;div style="text-align: justify;"&gt;- El filtrado por firewall o DNS es lento, poco granular e ineficiente.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Esto ocurre porque no fueron creados para análisis profundo ni filtrado avanzado.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Solo ven &lt;code&gt;facebook.com&lt;/code&gt; → sí o no; no distinguen rutas, subdominios ni patrones complejos.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Esta restricción es la misma en la mayoría de firewalls básicos de routers.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Pero aun así la gente los usa, como si fueran un proxy y comienzan a filtrar sitios como si no hubiese un mañana, y su sistema a ralentizarse... &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Un bucle infinito de limitaciones, porque simplemente no son aplicaciones diseñadas&amp;nbsp;para filtrar, o sea,&amp;nbsp;no son un proxy. Y es por eso que estas aplicaciones se limitan a incluir filtros AD (publicidad, métricas, etc.), que en eso sí se destacan, pero es algo que también puede hacer un proxy y mucho mejor.&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwZsuMLAO5_quiCkLoDTtgpTPQhWwhDALi45jCWZgZEfVl7I7c_bXdZzrSOYSWbyrZWTRQgdbLIhoSpVEudlrtIAyTykQm2tqChEOI6EQY2f0rGONs8HDYndD3UnmRCqFyyDc-EfhyBWKwVqK94kdgfSF7bf0d-kWIZuNAsEcni5Jt10JrJPjRv2NQssJF/s1600/filter-tabla.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;&lt;img alt="" border="0" data-original-height="678" data-original-width="723" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwZsuMLAO5_quiCkLoDTtgpTPQhWwhDALi45jCWZgZEfVl7I7c_bXdZzrSOYSWbyrZWTRQgdbLIhoSpVEudlrtIAyTykQm2tqChEOI6EQY2f0rGONs8HDYndD3UnmRCqFyyDc-EfhyBWKwVqK94kdgfSF7bf0d-kWIZuNAsEcni5Jt10JrJPjRv2NQssJF/s1600/filter-tabla.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Filtrado por DNS vs Firewall vs Proxy&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Un proxy, como Squid-Cache sí fue diseñado para filtrar casi cualquier cosa que se les ocurra: inspecciona cada petición HTTP/HTTPS línea por línea, permite &lt;code&gt;facebook.com/noticias/&lt;/code&gt; pero bloquea &lt;code&gt;facebook.com/adult/&lt;/code&gt;, filtra subdominios específicos, usa expresiones regulares, analiza encabezados, cookies, patrones de contenido y maneja en milisegundos listas negras con millones de líneas.&amp;nbsp;Si no creen, intenten cargar las listas negras &lt;a href="https://github.com/maravento/blackweb" target="_blank"&gt;Blackweb&lt;/a&gt; o&amp;nbsp;&lt;a href="https://dsi.ut-capitole.fr/blacklists/index_en.php" target="_blank"&gt;Blacklists UT1&lt;/a&gt; en un router Mikrotik o Pi-hole y verán cómo su sistema colapsa.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;Es precisión quirúrgica versus marketing... Es operar con bisturí versus con un machete.&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero toda esa potencia técnica, es invisible para quien mira una moderna interfaz; un dashboard, con métricas llamativas y relucientes, al estilo de powerpoint, es más persuasiva para un gerente que la línea de comandos para administrar Squid.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Los filtros DNS&amp;nbsp; o los routers son más simples de instalar y configurar, requieren menos conocimiento técnico, y sus interfaces vistosas hacen que las organizaciones crean que tienen una solución "mágica", cuando en realidad están sacrificando precisión, velocidad y control por comodidad estética. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Squid sigue vivo, pero en las sombras. Potente, eficiente, pero invisible para los nuevos administradores de sistemas informáticos y redes; invisible para los que toman decisiones de presupuesto; invisible para la industria que lo reemplaza con alternativas más "amigables" pero técnicamente inferiores. Un fantasma útil que sigue cumpliendo su trabajo silenciosamente en servidores remotos de oficinas en provincias, mientras la tecnología avanza hacia soluciones que priorizan la experiencia del usuario sobre la eficiencia técnica. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;Supervivientes&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Afortunadamente, la masacre no terminó con todo el ecosistema. El que una vez fue el todo poderoso &lt;a href="https://webmin.com/" target="_blank"&gt;Webmin&lt;/a&gt;, y que muchos daban por muerto, reemplazándolo con Cockpit,&amp;nbsp;Ajenti, aaPanel o ISPConfig y otras alternativas más atractivas, sigue &lt;b&gt;vivo y coleando&lt;/b&gt;, y mantiene módulos dedicados expresamente a la administración de Squid.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;También sobrevivió &lt;a href="https://github.com/kaelthasmanu/SquidStats" target="_blank"&gt;SquidStats&lt;/a&gt;, un excelente proyecto para el manejo de estadísticas de Squid, con un gran equipo de desarrollo detrás, pero, desafortunadamente, apenas sobrevive y tiene escasas visitas en github.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Y para el resto del ecosistema, el reinado terminó. SARG, LightSquid, Calamaris y sus hermanos yacen en el cementerio digital, esperando a un historiador de la tecnología que algún día cuente sus historias. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;La Resurrección: Proxy Monitor&lt;/b&gt;
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVmVmhUxlnNGfVaPQ3X_6j8QhSss1T9ufjtYX08NnxGDlkQNlmpCvQyTMkOX5X0pN7gg1oObUGxaMZ-uvp2d8SByt5_WVYXeSICLSPhqr-hJlcHGkovMCTnErXFhl1ZyGYwsdRjTd3ivhzpxpgECi_G8uC5qUqmjnOQs51jj74gWp8JufP8xn8oxSoPhxL/s1600/squidmon-tab.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;&lt;img alt="" border="0" data-original-height="1038" data-original-width="1860" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVmVmhUxlnNGfVaPQ3X_6j8QhSss1T9ufjtYX08NnxGDlkQNlmpCvQyTMkOX5X0pN7gg1oObUGxaMZ-uvp2d8SByt5_WVYXeSICLSPhqr-hJlcHGkovMCTnErXFhl1ZyGYwsdRjTd3ivhzpxpgECi_G8uC5qUqmjnOQs51jj74gWp8JufP8xn8oxSoPhxL/s1600/squidmon-tab.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Proxy Monitor&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt; Pero la historia no termina aquí. Nosotros nos negamos a dejar morir estas leyendas. Por eso creamos&amp;nbsp;&lt;b&gt;Proxy Monitor;&lt;/b&gt;&amp;nbsp;una aplicación web open source, que resucita cuatro de estos fantasmas, devolviéndolos a la vida: &lt;b&gt;LightSquid&lt;/b&gt;, &lt;b&gt;SqStat,&lt;/b&gt;&amp;nbsp;&lt;b&gt;SARG, SquidAnalyzer &lt;/b&gt;+ un módulo propio de nuestro portal:&lt;b&gt; Squidmon &lt;/b&gt;(y otro en camino: Logview)&amp;nbsp;+ un script para el control del consumo de datos por cliente que trabaja con el set de datos de Lightsquid.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Proxy Monitor (Proxymon) integra estas herramientas clásicas en una interfaz web moderna, unificada y funcional. No es un dashboard con gráficos coloridos, diseñado para impresionar CEOs. Es algo mejor; es precisión recuperada; es funcionalidad que sobrevivió a la prueba del tiempo, ahora accesible de nuevo. Todas juntas, en un solo lugar, para facilidad de uso.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;El proyecto está actualmente en &lt;b&gt;Beta&lt;/b&gt;, ya que estamos corrigiendo con IA el código de los módulos descontinuados, pero con la promesa de pasar a &lt;b&gt;Release Candidate&lt;/b&gt; próximamente.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Requiere solo &lt;code&gt;Squid-Cache&lt;/code&gt; y &lt;code&gt;Apache2&lt;/code&gt;. Lee el &lt;code&gt;access.log&lt;/code&gt; de Squid y transforma esos datos en reportes detallados, estadísticas granulares, monitoreo en tiempo real y análisis profundo. Todo lo que las herramientas originales ofrecían, optimizado para los sistemas modernos&lt;b&gt;.&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Los administradores de sistemas que aún usan Squid —los que no fueron seducidos por dashboards bonitos ni interfaces de un clic— tienen ahora la oportunidad de dejar la pereza de lado. Retomen estas leyendas. Recuperen la precisión quirúrgica que el mercado abandonó. Descarguen Proxy Monitor, instálenlo en su servidor y devuelvan a la vida a estas joyas olvidadas. Porque, mientras el mundo elige interfaces deslumbrantes sobre eficiencia técnica, ustedes —los verdaderos sysadmins— pueden seguir eligiendo lo correcto. Squid sigue vivo. Sus herramientas también pueden estarlo. &lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; Para mayor información visite &lt;a href="https://github.com/maravento/vault/tree/master/proxymon" target="_blank"&gt;Proxy Monitor&lt;/a&gt;. &lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/7840254355244868371" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/7840254355244868371" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2025/11/precision-vs-marketing.html" rel="alternate" title="Precisión vs Marketing" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimGrsEoCjVZHYaeQbD5reftXAxN8CRiLe7adoOWdd4QxSivwwUaP43ozL5BwYLtUYUeLjLChdnreOUdIc-nCJZDVvGEcwfHIbqmCCfKtvDVzThFtGq95lWRCT_XPpf80Bw45jsLOGsALE6hsnh518Rp93DdMc3aKMFXItJIcJ1BuBrYcfPQgnEEB_g5UzB/s72-c/precision_vs_marketing.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-658785005513450035</id><published>2025-10-25T11:57:00.019-04:00</published><updated>2025-10-26T19:19:10.861-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache"/><category scheme="http://www.blogger.com/atom/ns#" term="iptables"/><category scheme="http://www.blogger.com/atom/ns#" term="ipv4"/><category scheme="http://www.blogger.com/atom/ns#" term="ipv6"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Squid"/><title type="text">IPv4 up IPv6 down</title><content type="html">&lt;div class="separator" style="clear: both;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv_qra69rgn-b2oIFv4Afma5qBcfVkpJGhTqC5h4qkWpJKZpdgktV1ZFKkSDjPpdHDOc_4V3j2UNwConHaMoRxDKYhyphenhyphensy-TUBRmydCe9SEDHdbGVufXK4RZVcilPTU2HthEMtW8esibN2gWHtOL6U_NIi8snBhfnB6ou-Dqx1reeZDaMIhnoniQYHoh4CI/s1536/ipv4-ipv6.png" style="display: block; padding: 1em 0px; text-align: center;"&gt;
    &lt;img alt="" border="0" data-original-height="1024" data-original-width="1536" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv_qra69rgn-b2oIFv4Afma5qBcfVkpJGhTqC5h4qkWpJKZpdgktV1ZFKkSDjPpdHDOc_4V3j2UNwConHaMoRxDKYhyphenhyphensy-TUBRmydCe9SEDHdbGVufXK4RZVcilPTU2HthEMtW8esibN2gWHtOL6U_NIi8snBhfnB6ou-Dqx1reeZDaMIhnoniQYHoh4CI/s320/ipv4-ipv6.png" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En tiempos pasados, todo era IPv4. Administrar una LAN era, por decirlo de alguna manera, más sencillo. Un único protocolo, reglas claras, tráfico predecible. Luego llegó IPv6 (y HTTPS) y abrió la caja de Pandora. Los diferentes sistemas operativos comenzaron a incluir IPv6 activado por defecto, trayendo consigo una avalancha de protocolos auxiliares y de repente, los dispositivos tenían múltiples direcciones IP, múltiples puertas de enlace, múltiples formas de comunicarse sin que el administrador lo notara.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y si algo demostró IPv6, es que los estándares únicos habían muerto. Los navegadores aprendieron la lección y dejaron de usar exclusivamente el clásico puerto 53 y apareció un abanico de protocolos, todos cifrados, encapsulados, automatizados e "inteligentes", tales como:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;DoT (DNS over TLS) - TCP 853&lt;/li&gt;
    &lt;li&gt;DoH (DNS over HTTPS) - HTTPS (TCP 443)&lt;/li&gt;
    &lt;li&gt;DoQ (DNS over QUIC) - UDP 853 (a veces 8853)&lt;/li&gt;
    &lt;li&gt;LLMNR (Link-Local Multicast Name Resolution) - UDP/TCP 5355 (Windows)&lt;/li&gt;
    &lt;li&gt;DNSCrypt - UDP/TCP 443 o 5443&lt;/li&gt;
    &lt;li&gt;DNS over Tor (DoT/DoH sobre Tor) - TCP sobre Tor&lt;/li&gt;
    &lt;li&gt;Y quién sabe cuántos más aparecerán con el tiempo...&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero...
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;¿Vale la pena usar IPv6 en una LAN pequeña o mediana?&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;A nuestro criterio, &lt;b&gt;no&lt;/b&gt;. Una red local se puede administrar perfectamente con IPv4, utilizando rangos privados de clase A, B o C. De hecho, muchas empresas importantes siguen operando sus redes internas con IPv4, reservando IPv6 únicamente para su exposición a Internet o servicios públicos. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En resumen, si tienes un café internet, una oficina o una empresa mediana, &lt;b&gt;no necesitas IPv6&lt;/b&gt;. Basta con usar un rango privado con máscara /24 (o, para los más organizados, segmentar mediante VLANs), todo sobre IPv4. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Y ¿qué hacemos con IPv6?&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Respuesta corta: &lt;b&gt;Desactivarlo.&lt;/b&gt;. Pero claro, nadie quiere ir equipo por equipo desactivando IPv6, desplegando políticas de dominio o escribiendo scripts automatizados. Por fortuna, no es necesario: si tu red está centralizada mediante un &lt;b&gt;servidor Linux&lt;/b&gt;, es suficiente controlarlo desde ahí. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Cómo desactivar IPv6 desde el servidor Linux&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;1. Ajustar parámetros del sistema&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Crear una copia de respaldo de la configuración actual
cp -f /etc/sysctl.conf{,.bak} &amp;amp;&amp;gt;/dev/null

# Ejecuta el siguiente loop para desactivar permanentemente IPv6
# Y habilitar el algoritmo de congestión BBR
tee -a /etc/sysctl.conf &amp;gt;/dev/null &amp;lt;&amp;lt;EOT
# Protocolo de congestión
net.ipv4.tcp_congestion_control = bbr

# Desactivar IPv6 en todas las interfaces
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
EOT
sysctl -p
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y no sobra agregar reglas adicionales en el firewall para IPv6 por si acaso algún servicio intenta levantar IPv6:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# IPv6
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;2. Dar prioridad a IPv4&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Aseguramos que el sistema siempre use IPv4 antes que IPv6:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Crear respaldo del archivo gai.conf
cp -f /etc/gai.conf{,.bak} &amp;amp;&amp;gt;/dev/null

# Ejecuta en el terminal el siguiente comando para aumentar la precedencia de IPv4
sed -i 's/^#\s*precedence ::ffff:0:0\/96\s\+100/precedence ::ffff:0:0\/96  100/' /etc/gai.conf
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;3. Modificar el archivo /etc/hosts&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Comentamos todas las líneas IPv6 excepto la loopback local ( &lt;code&gt;::1&lt;/code&gt;): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;cp -f /etc/hosts{,.bak} &amp;amp;&amp;gt;/dev/null
sed -i '/^\s*\(fe00::\|ff00::\|ff02::\)/ s/^/#/' /etc/hosts
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para evitar que los clientes realicen detección de portal cautivo (CPD) a través de IPv6, redirigimos esas peticiones al propio servidor:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;grep -q "ipv6.msftncsi.com" /etc/hosts || echo "$serverip ipv6.msftncsi.com ipv6.msftconnecttest.com" | tee -a /etc/hosts
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Nota:&lt;/b&gt; Reemplaza &lt;code&gt;$serverip&lt;/code&gt; con la dirección IPv4 local del servidor que administra la red.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;4. Bloquear IPv6 en Squid&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Block: IPv6
acl to_ipv6 dst ipv6
http_access deny to_ipv6
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;5. Otros consejos útiles&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Si quieres asegurarte de que los servicios solo escuchen en direcciones IPv4, puedes especificarlo así:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;En Squid:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;http_port 0.0.0.0:3128
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;En Apache2:&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;Listen 0.0.0.0:80
Listen 0.0.0.0:443
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;En SSH (Opcional):&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;AddressFamily inet
ListenAddress 0.0.0.0
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;En NetworkManager (si usas entorno gráfico) (Opcional):&lt;/b&gt;
  &lt;br /&gt; Edita o crea &lt;code&gt;/etc/NetworkManager/conf.d/disable-ipv6.conf&lt;/code&gt;:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;[connection]
ipv6.method=ignore
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Luego reinicia el servicio y verifica:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;systemctl restart NetworkManager
systemctl status NetworkManager
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;En netplan (a la interfaz local solamente):&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;nano /etc/netplan/config.yaml
dhcp6: false
netplan apply
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Desactivar IPv6 desde GRUB&lt;/b&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;GRUB_CMDLINE_LINUX="ipv6.disable=1"
update-grub
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Verificar servicios activos en IPv6&lt;/b&gt;
&lt;/div&gt;

&lt;pre class="prettyprint"&gt;# Listar todos los sockets TCP/UDP escuchando en IPv6 de manera precisa
ss -6 -tulnp

# Alternativa: buscar cualquier línea que contenga "::" (direcciones IPv6)
ss -tulnp | grep '::'

# Verificar si IPv6 está deshabilitado a nivel de kernel
# 1 = IPv6 deshabilitado, 0 = IPv6 activo
cat /proc/sys/net/ipv6/conf/all/disable_ipv6

# Mostrar todas las interfaces con direcciones IPv6 asignadas
ip -6 addr show

# Revisar servidores DNS configurados (pueden incluir direcciones IPv6)
cat /etc/resolv.conf
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Conclusión&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Desactivar IPv6 en una red pequeña o mediana no es una herejía técnica, es una decisión práctica. Mientras la infraestructura local y los servicios internos dependan de IPv4, mantener IPv6 activo solo añade complejidad y posibles fugas de tráfico no controlado.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En cambio, al desactivarlo desde el servidor central:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Simplificas la administración.&lt;/li&gt;
    &lt;li&gt;Reduces la superficie de ataque.&lt;/li&gt;
    &lt;li&gt;Evitas consultas DNS cifradas fuera de tu control.&lt;/li&gt;
    &lt;li&gt;Y mantienes un entorno de red más predecible y auditable.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;IPv6 tiene su lugar, especialmente en redes globales o grandes corporaciones con necesidades de direccionamiento masivo. Pero en una LAN pequeña o mediana, &lt;b&gt;IPv4 sigue siendo más que suficiente.&lt;/b&gt;
&lt;/div&gt;&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/658785005513450035" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/658785005513450035" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2025/10/ipv4-up-ipv6-down.html" rel="alternate" title="IPv4 up IPv6 down" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv_qra69rgn-b2oIFv4Afma5qBcfVkpJGhTqC5h4qkWpJKZpdgktV1ZFKkSDjPpdHDOc_4V3j2UNwConHaMoRxDKYhyphenhyphensy-TUBRmydCe9SEDHdbGVufXK4RZVcilPTU2HthEMtW8esibN2gWHtOL6U_NIi8snBhfnB6ou-Dqx1reeZDaMIhnoniQYHoh4CI/s72-c/ipv4-ipv6.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-6242042808220228875</id><published>2025-06-27T21:11:00.300-04:00</published><updated>2025-11-13T17:46:25.765-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache"/><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="encriptado"/><category scheme="http://www.blogger.com/atom/ns#" term="Firewall"/><category scheme="http://www.blogger.com/atom/ns#" term="iptables"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Squid"/><title type="text">HTTP CPD</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUx-8U636gSHxlF0gmoSiJ_abbYjV9cOS4Q-XXc5Yw4jnWrkBd-00UGD12u0H2ooX0WKSMlR0iOB9TpKIIpPTzX8NkfDD34nvR_X790LQITO3lfaymBJTAOKHEcLYB5jH7BReTEuAGbvdn4DPbjydSMSls-z9ljayku__upKuOEry-TldG_jgqK4eXgyzD/s803/http302.png" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="533" data-original-width="803" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUx-8U636gSHxlF0gmoSiJ_abbYjV9cOS4Q-XXc5Yw4jnWrkBd-00UGD12u0H2ooX0WKSMlR0iOB9TpKIIpPTzX8NkfDD34nvR_X790LQITO3lfaymBJTAOKHEcLYB5jH7BReTEuAGbvdn4DPbjydSMSls-z9ljayku__upKuOEry-TldG_jgqK4eXgyzD/s320/http302.png" width="320" /&gt;
    &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Es posible hacer una redirección del protocolo HTTPs a HTTP?. Respuesta corta: NO y Respuesta larga: NO", pero hay un escenario muy interesante que hoy intentaremos explicar. Sin embargo, primero, veamos qué sucede cuando se establece una conexión HTTPs:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;El navegador del cliente intenta conectarse a la URL https://facebook.com (que usa HTTPs puerto 443 por defecto).&lt;/li&gt;
    &lt;li&gt;El cliente y el servidor inician un handshake SSL/TLS (una negociación para establecer un canal cifrado).&lt;/li&gt;
    &lt;li&gt;Durante ese proceso, el servidor donde está alojada la URL envía un certificado digital, que el navegador del cliente valida para verificar que está hablando con el sitio, o sea, que el certificado sea válido para https://facebook.com.&lt;/li&gt;
    &lt;li&gt;Solo si ese proceso es exitoso, se establece una conexión segura y recién ahí se transmiten los datos reales.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En realidad suceden más cosas, pero para qué alargar el asunto. Aquí lo importante es que todo está cifrado desde el principio y no hay manera de ver ni modificar el contenido.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Escenario&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; ¿Y qué sucedería si tenemos una una red LAN centralizada y administrada por un servidor o router, actuando como Man-in-the-Middle MITM, y queremos bloquear https://www.facebook.com e inyectarle una redirección a una página de bloqueo personalizada?&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;El navegador solicita el certificado SSL/TLS de facebook.&lt;/li&gt;
    &lt;li&gt;El MITM interviene e inyecta una redirección de facebook hacia nuestra página de bloqueo.&lt;/li&gt;
    &lt;li&gt;El navegador espera recibir el certificado legítimo de facebook y en su lugar recibe algo diferente y se rompe la conexión SSL/TLS y la página "se cae" con un mensaje de error similar al siguiente:&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3t22npHHlkHJqjp_EhrnWC6hCL9NuiRuwJI58GYBcDV9C-vlEtcgfaSBo8xnRoVuAyQCeA7CC4x7_Us-B2x8rJsFzrX6jxnk9k6W_zUXt0_8AlzClvmnZfWqkrzvzz0EErzAo88HZTheYrqYAT_nd0LHSNfPImddNraWo3u6F8otJaHQ8sHOIpKIajwzZ/s1600/http302-ERR_SSL_PROTOCOL_ERROR2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="1024" data-original-width="1024" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3t22npHHlkHJqjp_EhrnWC6hCL9NuiRuwJI58GYBcDV9C-vlEtcgfaSBo8xnRoVuAyQCeA7CC4x7_Us-B2x8rJsFzrX6jxnk9k6W_zUXt0_8AlzClvmnZfWqkrzvzz0EErzAo88HZTheYrqYAT_nd0LHSNfPImddNraWo3u6F8otJaHQ8sHOIpKIajwzZ/s1600/http302-ERR_SSL_PROTOCOL_ERROR2.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Error SSL/TLS facebook.com&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Esta es precisamente la razón por la cual no se pueden mostrar mensajes de advertencia, bloqueos u otro tipo de contenido personalizado cuando se trata del protocolo HTTPs.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;A Long, Long Time Ago...&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Antes de 2010, cuando aún no se había adoptado de forma masiva el protocolo HTTPs, la mayoría de los sitios en Internet utilizaban HTTP. En ese contexto, por ejemplo, con un proxy como &lt;a href="https://www.squid-cache.org/" target="_blank"&gt;Squid-Cache&lt;/a&gt; operando en una LAN centralizada, bastaba con definir una regla de bloqueo y agregar la cláusula &lt;a href="https://www.squid-cache.org/Doc/config/deny_info/" target="_blank"&gt;deny_info&lt;/a&gt; para mostrar al cliente una página de error personalizada. Sin embargo, con la transición a HTTPs, esta cláusula ha perdido efectividad (solo sirve para HTTP), pero, existe otra alternativa.&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Tomando nuevamente como ejemplo a Squid-Cache, este proxy ofrece la directiva &lt;a href="https://wiki.squid-cache.org/Features/SslBump" target="_blank"&gt;SSL-Bump&lt;/a&gt;, que permite interceptar la conexión HTTPs, generar en tiempo real un certificado falso y entregárselo al cliente, actuando como intermediario (MITM). Esto permitiría redirigir o bloquear el acceso mostrando mensajes personalizados, pero el navegador lanza una alerta, que, en muchos casos, ni siquiera permite continuar la navegación, así se pulse el botón "Avanzado" para hacerlo:&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKRUt6gXvV1dA9ciIBpMU22iO7dWh6SOSEU9jekxEFECjg6C1LBAbMu7-dKtBPT9TANOxJXffekc88vp6uNUOXv2v8xngspnG_zJRINLZQJCnDH0L-9984VifixZkvXl5bWrPM1fQTe3zKoL478XjU8BuHjAkXHK2qsO5TpGVoOX94M-urFfEZXDz4S33O/s1600/http302-certificado.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;&lt;img alt="" border="0" data-original-height="490" data-original-width="789" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKRUt6gXvV1dA9ciIBpMU22iO7dWh6SOSEU9jekxEFECjg6C1LBAbMu7-dKtBPT9TANOxJXffekc88vp6uNUOXv2v8xngspnG_zJRINLZQJCnDH0L-9984VifixZkvXl5bWrPM1fQTe3zKoL478XjU8BuHjAkXHK2qsO5TpGVoOX94M-urFfEZXDz4S33O/s1600/http302-certificado.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Alerta en el navegador por certificado SSL personalizado&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Como podemos observar, en la práctica, esta solución es casi inviable, debido a la gran diversidad de sistemas operativos y navegadores, así como a las crecientes restricciones de seguridad que dificultan la instalación y confianza en un certificado raíz personalizado en cada dispositivo, y, lo más importante, que este tipo de manipulación del tráfico puede violar políticas de privacidad o regulaciones legales, dependiendo del contexto y la jurisdicción.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Otras alternativas muy populares y menos invasivas son soluciones como &lt;a href="https://pi-hole.net/" target="_blank"&gt;Pi-hole&lt;/a&gt; y &lt;a href="https://www.opendns.com/" target="_blank"&gt;OpenDNS&lt;/a&gt;, que operan a nivel de resolución de nombres de dominio (DNS). Estas herramientas filtran las solicitudes, bloqueando dominios conocidos por alojar publicidad, rastreadores, malware, contenido no deseado, etc. Pi-hole suele implementarse en redes LAN como un servidor DNS interno, mientras que OpenDNS ofrece un servicio similar desde la nube. No obstante, este enfoque vuelve la navegación lenta a medida que las listas de bloqueo crecen en tamaño (cantidad de líneas de dominios a bloquear), y no permite inspeccionar el contenido de las conexiones cifradas, ni mucho menos realizar redirecciones a páginas personalizadas, ya que hacerlo requeriría romper el cifrado SSL, algo para lo cual no están diseñadas (OpenDNS tiene un certificado, pero ocurriría el mismo problema que con SSL-Bump).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En este punto ya deberíamos saber que la respuesta simple, como mencionamos al principio, es: No se puede redireccionar HTTPs a nuestro antojo. Pero esto no significa que nos quedemos cruzados de brazos. A continuación una solución a nuestro "escenario" (a modo de recordatorio: mostrarle al cliente una página personalizada cuando intente acceder a un sitio https) y es HTTP CDP.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;CDP&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;¿Qué diablos es CDP?. Bueno, antes de entrar en materia, primero hay que conocer el funcionamiento básico de los portales cautivos. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Un portal cautivo es una parte integral de un sistema hotspot. Su función no es interceptar ni inspeccionar el contenido del tráfico, sino redirigir temporalmente las solicitudes iniciales del cliente hacia una página de autenticación o aviso. De este modo, el usuario no puede acceder libremente a Internet hasta completar el proceso de autenticación o aceptación.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Entonces, cuando un cliente se conecta por primera vez a la red LAN (ya sea cableada, Wi-Fi pública, etc.), el sistema bloquea todo el tráfico saliente, excepto algunas excepciones mínimas, como DNS y HTTP. Si el cliente intenta abrir cualquier sitio web, se produce algo conocido en el argot popular como "connectivity check" y su nombre técnico es "Captive Portal Detection (CPD)".&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Este CPD, en el contexto de sistemas operativos y navegadores, es un mecanismo mediante el cual el dispositivo verifica si tiene acceso real a Internet y consiste en hacer una petición HTTP a una URL conocida, normalmente a un servidor controlado por el fabricante del sistema (como Google, Microsoft o Apple). Por ejemplo, al conectarse a una red, el sistema operativo o navegador puede hacer una solicitud a una URL específica, como:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;a href="http://clients3.google.com/generate_204"&gt;http://clients3.google.com/generate_204&lt;/a&gt; (Android/Chrome)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;a href="http://www.msftconnecttest.com/connecttest.txt"&gt;http://www.msftconnecttest.com/connecttest.txt&lt;/a&gt; (Windows)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;a href="http://captive.apple.com"&gt;http://captive.apple.com&lt;/a&gt; (Apple)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;a href="http://detectportal.firefox.com/success.txt"&gt;http://detectportal.firefox.com/success.txt&lt;/a&gt; (Firefox)
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Si la respuesta es la esperada, por ejemplo, un código "HTTP 204 No Content" o un texto específico, el sistema concluye que hay conectividad a Internet.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Y a quién le importa cómo funcionan y qué relación tiene con el "escenario"&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;La razón de esta explicación es porque estas peticiones de verificación no van por HTTPs, sino por HTTP, lo que significa que pueden ser interceptadas y/o redireccionadas automáticamente al portal cautivo.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Dicho de otro modo, no se redirige la petición HTTPs propiamente, sino que se espera a que el cliente active el mecanismo de verificación CPD, que es por HTTP, y se intercepta para guiarlo al portal. Y es aquí donde sucede la magia, ya que podemos usar este mecanismo para ofrecerle una página diferente al cliente.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Y ¿cómo aplicamos esta técnica en el "escenario"?&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Hay que aclarar que la única manera de que esto funcione es bloqueando al cliente, y mostrandole el portal. Por tanto, esto se puede usar cuando un cliente va a iniciar la navegación (al estilo de los portales cautivos) o para bloquear un infractor y mostrarle una página de advertencia, términos y condiciones, etc. Hay otros escenarios, pero estos dos son los más usados.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Una vez entendido estos principios, lo siguiente es montar una página que muestre la página que queremos mostrarle al cliente cuando intente acceder y configurarla para que sea servida por HTTP (Opcional: también por HTTPs; aunque este último, como ya vimos, solo tendrá efecto si el cliente la abre directamente, ya que no hay redirección HTTPs). Para esto usaremos un servidor Linux, con &lt;a href="https://httpd.apache.org/" target="_blank"&gt;apache2&lt;/a&gt;,&amp;nbsp;&lt;a href="https://www.netfilter.org/documentation/" target="_blank"&gt;iptables&lt;/a&gt;&amp;nbsp;e&amp;nbsp;&lt;a href="https://ipset.netfilter.org/" target="_blank"&gt;ipset&lt;/a&gt;&amp;nbsp;y... nada más.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Paso 1: Crear una página HTML&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Primero creamos una página simple en HTML que será la advertencia o mensaje de restricción que verá el cliente. Luego, la alojamos en Apache2 (o en cualquier otro servidor HTTP que prefieran). A continuación un ejemplo (puede modificarla a su gusto):&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash
mkdir -p /var/www/html/warning
chown -R www-data:www-data /var/www/html/warning
tee /var/www/html/warning/warning.html &amp;gt;/dev/null &amp;lt;&amp;lt; EOL
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang="es"&amp;gt;
&amp;lt;head&amp;gt;

  &amp;lt;meta charset="UTF-8"&amp;gt;
  &amp;lt;title&amp;gt;Acceso restringido | Restricted Access&amp;lt;/title&amp;gt;
  &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&amp;gt;
  
  &amp;lt;style&amp;gt;
    body {
      background: #f2f5f8;
      font-family: "Segoe UI", Tahoma, sans-serif;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100vh;
      margin: 0;
    }

    .container {
      background: white;
      padding: 40px;
      border-radius: 10px;
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
      text-align: center;
      max-width: 400px;
      width: 90%;
    }

    .container img {
      width: 80px;
      margin-bottom: 20px;
    }

    h1 {
      color: #333;
      margin-bottom: 10px;
    }

    p {
      color: #666;
      margin-bottom: 30px;
    }

    .quota {
      text-align: left;
      background: #f9fafc;
      border: 1px solid #ddd;
      padding: 15px;
      border-radius: 6px;
      font-size: 14px;
    }

    .quota li {
      margin-bottom: 8px;
    }

    .footer {
      font-size: 12px;
      color: #aaa;
      margin-top: 30px;
    }
  &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;p style="display: none;"&amp;gt;Success&amp;lt;/p&amp;gt;
  &amp;lt;div class="container"&amp;gt;

    &amp;lt;svg width="80" height="80" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"&amp;gt;
      &amp;lt;path d="M50 10 L90 80 L10 80 Z" fill="none" stroke="#e53e3e" stroke-width="6" stroke-linejoin="round"/&amp;gt;
      &amp;lt;circle cx="50" cy="65" r="3" fill="#000"/&amp;gt;
      &amp;lt;line x1="50" y1="30" x2="50" y2="55" stroke="#000" stroke-width="6" stroke-linecap="round"/&amp;gt;
    &amp;lt;/svg&amp;gt;

    &amp;lt;h1&amp;gt;Acceso restringido&amp;lt;br&amp;gt;
    Restricted Access&amp;lt;/h1&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
EOL
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Paso 2: Configurar Apache para HTTP (y HTTPs como opcional, aunque no se necesita)&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Ahora creamos dos VirtualHost en Apache2, uno que escuche en el puerto 18880 (HTTP) y otro en 18443 (HTTPs), ambos mostrando la misma página de advertencia (puede usar los puertos y path de su preferencia):&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash
# defina la dirección IP del servidor
server_ip="192.168.0.10"
tee /etc/apache2/sites-available/warning.conf &amp;gt;/dev/null &amp;lt;&amp;lt; EOL
&amp;lt;VirtualHost *:18880&amp;gt;
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/warning

    &amp;lt;Directory /var/www/html/warning&amp;gt;
        DirectoryIndex warning.html
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
    &amp;lt;/Directory&amp;gt;
    
    # Windows (NCSI - MSFT Connect Test)
    Alias /ncsi.txt /var/www/html/warning/warning.html
    Alias /connecttest.txt /var/www/html/warning/warning.html
    Alias /redirect /var/www/html/warning/warning.html
    Alias /msftconnecttest/redir.htm /var/www/html/warning/warning.html
    Alias /ncsi/redirect /var/www/html/warning/warning.html

    # Microsoft Edge (Chromium)
    Alias /captiveportal/generate_204 /var/www/html/warning/warning.html
    Alias /edge-captiveportal/generate_204 /var/www/html/warning/warning.html

    # Android (Google Captive Portal Check)
    Alias /generate_204 /var/www/html/warning/warning.html
    Alias /gen_204 /var/www/html/warning/warning.html
    Alias /mobile/status.php /var/www/html/warning/warning.html

    # Apple iOS y macOS
    Alias /hotspot-detect.html /var/www/html/warning/warning.html
    Alias /library/test/success.html /var/www/html/warning/warning.html
    Alias /success.txt /var/www/html/warning/warning.html
    Alias /hotspot.txt /var/www/html/warning/warning.html

    # Firefox Captive Portal
    Alias /captive-portal-success.html /var/www/html/warning/warning.html

    # GNOME / KDE (Linux)
    Alias /nmcheck.txt /var/www/html/warning/warning.html
    Alias /check_network_status.txt /var/www/html/warning/warning.html
    Alias /conncheck.html /var/www/html/warning/warning.html
    
    # Extras
    Alias /favicon.ico /var/www/html/warning/warning.html
    Alias /success.html /var/www/html/warning/warning.html
    Alias /success /var/www/html/warning/warning.html

    RewriteEngine On
	
    # Puede usar:
    #RewriteCond %{REQUEST_URI} !^/warning\.html$
    #RewriteCond %{REQUEST_URI} !^/$
    #RewriteRule ^.*$ /warning.html [R=302,L]
    # Y abrirá la url
    # http://www.msftconnecttest.com/warning.html
    
    # o usar (recomendado):
    RewriteCond %{REQUEST_URI} !^/warning\.html$
    RewriteCond %{REQUEST_URI} !^/$
    RewriteRule ^.*$ /warning.html [L]
    # Y abrirá la url:
    # http://www.msftconnecttest.com/redirect

    ErrorLog ${APACHE_LOG_DIR}/warning_error.log
    CustomLog ${APACHE_LOG_DIR}/warning_access.log combined
&amp;lt;/VirtualHost&amp;gt;
EOL

chmod 644 /etc/apache2/sites-available/warning.conf
touch /var/log/apache2/{warning_access,warning_error}.log

# optional:
tee /etc/apache2/sites-available/warning-ssl.conf &amp;gt;/dev/null &amp;lt;&amp;lt; EOL

&amp;lt;VirtualHost *:18443&amp;gt;
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/warning

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/warning/cert.pem
    SSLCertificateKeyFile /etc/ssl/private/warning/key.pem
    &amp;lt;Directory /var/www/html/warning&amp;gt;
        DirectoryIndex warning.html
        Options -Indexes +FollowSymLinks
        AllowOverride None
        Require all granted
    &amp;lt;/Directory&amp;gt;

    RewriteEngine On

    # Puede usar:
    #RewriteCond %{REQUEST_URI} !^/warning\.html$
    #RewriteCond %{REQUEST_URI} !^/$
    #RewriteRule ^.*$ /warning.html [R=302,L]
    # Y abrirá la url
    # http://www.msftconnecttest.com/warning.html
    
    # o usar (recomendado):
    RewriteCond %{REQUEST_URI} !^/warning\.html$
    RewriteCond %{REQUEST_URI} !^/$
    RewriteRule ^.*$ /warning.html [L]
    # Y abrirá la url:
    # http://www.msftconnecttest.com/redirect

    ErrorLog ${APACHE_LOG_DIR}/warning_ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/warning_ssl_access.log combined
&amp;lt;/VirtualHost&amp;gt;
EOL

chmod 644 /etc/apache2/sites-available/warning-ssl.conf
touch /var/log/apache2/{warning_ssl_access,warning_ssl_error}.log
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Paso 3: Habilitar los puertos, certificado y módulos necesarios&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Ahora levantamos los puertos a escuchar en &lt;code&gt;ports.conf&lt;/code&gt; si no están ya definidos:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash
server_ip="192.168.0.10"
grep -q 'Listen 18880' /etc/apache2/ports.conf || echo 'Listen 18880' &amp;gt;&amp;gt; /etc/apache2/ports.conf
# Optional:
grep -q 'Listen 18443' /etc/apache2/ports.conf || echo 'Listen 18443' &amp;gt;&amp;gt; /etc/apache2/ports.conf

mkdir -p /etc/ssl/private/warning /etc/ssl/certs/warning
cat &amp;gt; /tmp/warning_openssl.cnf &amp;lt;&amp;lt;EOF
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
C = CO
ST = Some-State
L = City
O = CaptivePortal
CN = ${serverip}

[v3_req]
basicConstraints = critical,CA:FALSE
subjectAltName = @alt_names

[alt_names]
IP.1 = ${serverip}
EOF

# SSL
openssl req -x509 -nodes -newkey rsa:2048 -days 365 \
    -keyout /etc/ssl/private/warning.key.pem \
    -out /etc/ssl/certs/warning.cert.pem \
    -config /tmp/warning_openssl.cnf \
    -extensions v3_req \
    &amp;gt; /dev/null 2&amp;gt; /tmp/openssl_error.log

cat /tmp/warning_openssl.cnf
rm -f /tmp/warning_openssl.cnf

a2ensite -q warning.conf  
a2ensite -q warning-ssl.conf
a2enmod ssl
a2enmod rewrite
update-ca-certificates -f
systemctl daemon-reload
systemctl restart apache2
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Paso final: firewall (iptables + ipset)&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Una vez tengamos lista y funcionando la página que le vamos a mostrar al cliente, pasamos a configurar ipset/iptables. Ejemplo:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Importante:&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Hemos usado reglas con "-I" (insert, para que se inserten al principio de iptables en el órden propuesto) asumiendo que tiene otras reglas iptables. Caso contrario, cambie "-I" por "-A".&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Estan comentadas las reglas del puerto 18443, ya que son opcionales (CPD no usa SSL).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Sepa que estas reglas harán que la aparición del portal demore mucho tiempo. No las cambie a REJECT (&lt;code&gt;--reject-with tcp-reset&lt;/code&gt;, &lt;code&gt;--reject-with icmp-port-unreachable&lt;/code&gt;, etc.) para acelerar el proceso, ya que no abrirá el portal. Sea paciente (en ocasiones hay que cerrar el navegador y volverlo a abrir). &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Este script no incluye reglas por defecto, que debería considerar antes de ejecutarlo, tales como MASQUERADE, GLOBAL POLICIES, LOOPBACK, KERNEL RULES, NAT (FORWARDING), entre otras. Para mayor información, puede consultar tutoriales de reglas básicas de iptables o nuestro ejemplo en la cabecera de &lt;a href="https://github.com/maravento/vault/blob/master/gateproxy/conf/scr/iptables.sh" target="_blank"&gt;nuestro script&lt;/a&gt;. &lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash
# definimos la interfaz de red LAN
lan=eth1
# definimos la dirección IP del servidor man-in-the-middle
serverip="192.168.0.10"
# ip a banear de ejemplo:
all_bans="192.168.0.50"

### IPSET/IPTABLES FOR BANDATA
echo "Running Ipset/Iptables Rules..."
ipset -L bandata &amp;gt;/dev/null 2&amp;gt;&amp;amp;1
if [ $? -ne 0 ]; then
    ipset -! create bandata hash:net family inet hashsize 1024 maxelem 65536
else
    ipset -! flush bandata
fi

if [ -n "$all_bans" ]; then
    for ip in $all_bans; do
        ipset -exist add bandata "$ip"
    done
    echo "Ban IPs (out: /etc/acl/bandata.txt)"
    ipset list bandata 2&amp;gt;/dev/null | grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tee /etc/acl/bandata.txt
    
    echo "Applying Iptables Rules..."
    
    # ALLOW FORWARD
    iptables -I FORWARD 1 -i $lan -m set --match-set bandata src -p udp --dport 53 -j ACCEPT
    iptables -I FORWARD 2 -i $lan -m set --match-set bandata src -p tcp --dport 80 -j ACCEPT
    iptables -I FORWARD 3 -i $lan -m set --match-set bandata src -p tcp --dport 18880 -j ACCEPT
    
    # ALLOW: Optional TCP 18443 Apache SSL
    #iptables -I FORWARD 4 -i $lan -m set --match-set bandata src -p tcp --dport 18443 -j ACCEPT
    
    # DROP ALL: FORWARD
    iptables -I FORWARD 5 -i $lan -m set --match-set bandata src -j DROP 
    
    # ALLOW INPUT
    iptables -I INPUT 1 -i $lan -m set --match-set bandata src -p tcp --dport 18880 -j ACCEPT
    
    # ALLOW: Optional TCP 18443 Apache SSL
    #iptables -I INPUT 2 -i $lan -m set --match-set bandata src -p tcp --dport 18443 -j ACCEPT
    
    # DROP ALL: INPUT
    iptables -I INPUT 3 -i $lan -m set --match-set bandata src -j DROP
    
    # HTTP Redirect
    iptables -t nat -I PREROUTING -i $lan -m set --match-set bandata src -p tcp --dport 80 -j REDIRECT --to-port 18880
    
else
    echo "There are no IPs in bandata"
fi
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Conclusión&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;No es necesario configurar un VirtualHost HTTPs ni instalar certificados. Los mecanismos de detección de portales cautivos en sistemas operativos modernos se basan exclusivamente en peticiones HTTP (puerto 80). Por tanto, basta con tener un servidor HTTP sencillo que responda en un puerto alternativo (como 18880), sin necesidad de manejar tráfico HTTPs. Tampoco es necesario redireccionar o interceptar tráfico HTTPs. Intentar redirigir HTTPs genera errores de conexión en los navegadores debido al cifrado. Basta con bloquearlo para forzar que el navegador intente una conexión HTTP, lo que activará la detección del portal cautivo (aunque no significa que descarte completamente el Virtualhost HTTPs. Puede ser útil para hacer otros tipos de forzado de conexiones, verificación de funcionalidad o servir otros tipos de páginas en localhost para ofrecerle a los clientes y por eso lo incluimos en la instalación).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Entonces, Los requisitos mínimos para que funcione el portal cautivo (o cualquier página que quiera ofrecerle a sus clientes) son:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Permitir el acceso al puerto HTTP donde está el VirtualHost del portal cautivo.&lt;/li&gt;
	&lt;li&gt;Permitir consultas DNS (puerto 53/UDP).&lt;/li&gt;
	&lt;li&gt;Redirigir todo el tráfico HTTP (puerto 80) al puerto del VirtualHost HTTP.&lt;/li&gt;
	&lt;li&gt;Bloquear todo el tráfico restante.&lt;/li&gt;
	&lt;li&gt;La IP del cliente debe estar añadida al conjunto ipset que define los usuarios en cuarentena.&lt;/li&gt;
	&lt;li&gt;Limpiar las reglas existentes al comienzo de la ejecución de iptables para evitar conflictos o comportamientos inesperados.&lt;/li&gt;
	&lt;li&gt;El reenvío de paquetes (IP forwarding) debe estar habilitado para que funcione correctamente el redireccionamiento del tráfico.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Como vimos, no es posible redirigir el tráfico HTTPs debido a la naturaleza cifrada del protocolo, sin embargo, mediante el uso de técnicas similares a las empleadas por los portales cautivos, podemos &lt;strike&gt;abusar&lt;/strike&gt; aprovecharnos de mecanismos como el Captive Portal Detection (CPD) para mostrar advertencias o requisitos de acceso —ya sea un login, un aviso de términos, un formulario, página de bloqueo, etc.— antes de permitir la navegación completa.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Con unas pocas herramientas del kernel de Linux —como iptables, ipset y un servidor web básico— es posible implementar un sistema funcional que:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;Detecta clientes (no autenticados o bloqueados por el administrador).&lt;/li&gt;
    &lt;li&gt;Los redirige a una página HTTP (de login, aceptación de términos, restricciones de acceso a URLs, etc.)&lt;/li&gt;
    &lt;li&gt;Bloquea todo el tráfico restante hasta que se cumpla la condición definida por el administrador de sistemas o la empresa.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Esta solución no es perfecta y puede no funcionar en entornos muy controlados, sin embargo, sigue siendo una de las estrategias más efectivas y viables para controlar el acceso a redes locales, especialmente en entornos públicos o semi-controlados.&lt;br /&gt;Si quiere ver este proceso en acción, visite el proyecto &lt;a href="https://github.com/maravento/vault/tree/master/proxymon" target="_blank"&gt;Proxy Monitor&lt;/a&gt;, donde implementamos esta técnica bajo el nombre &lt;b&gt;bandata&lt;/b&gt;.&lt;/div&gt;&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/6242042808220228875" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/6242042808220228875" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2025/06/https-302.html" rel="alternate" title="HTTP CPD" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUx-8U636gSHxlF0gmoSiJ_abbYjV9cOS4Q-XXc5Yw4jnWrkBd-00UGD12u0H2ooX0WKSMlR0iOB9TpKIIpPTzX8NkfDD34nvR_X790LQITO3lfaymBJTAOKHEcLYB5jH7BReTEuAGbvdn4DPbjydSMSls-z9ljayku__upKuOEry-TldG_jgqK4eXgyzD/s72-c/http302.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-7986917978253723649</id><published>2025-05-21T19:51:00.093-04:00</published><updated>2025-06-19T21:55:12.513-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="full_audit"/><category scheme="http://www.blogger.com/atom/ns#" term="hdd"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Monitor"/><category scheme="http://www.blogger.com/atom/ns#" term="samba"/><title type="text">Control de carpetas compartidas</title><content type="html">&lt;div class="separator" style="clear: both;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxNY-0PZ5WqPlbqgPJzZZ34oCljpu2GLVlBSojQpRky-pp8R0x1d8zgpO21btnl7HxFiG_PVucaRVYooAYVgC_MesscOimBUBDIpVGJ8SlP1l6TxjeGSWCafPogKWEg4Y5iBVkg_MtF2Mp3Gynmr3ePlyL4fKQ-syBYlpI1ZQKZSj8_MzVbzqKf61hLdot/s1024/compartida.png" style="display: block; padding: 1em 0px; text-align: center;"&gt;
    &lt;img alt="" border="0" data-original-height="1024" data-original-width="1024" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxNY-0PZ5WqPlbqgPJzZZ34oCljpu2GLVlBSojQpRky-pp8R0x1d8zgpO21btnl7HxFiG_PVucaRVYooAYVgC_MesscOimBUBDIpVGJ8SlP1l6TxjeGSWCafPogKWEg4Y5iBVkg_MtF2Mp3Gynmr3ePlyL4fKQ-syBYlpI1ZQKZSj8_MzVbzqKf61hLdot/s320/compartida.png" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Compartir una carpeta en una red LAN tiene múltiples beneficios. En primer lugar, permite que equipos con sistemas operativos diferentes puedan acceder y compartir archivos en un almacenamiento centralizado. Y para esto, Linux tiene la aplicación Samba, que ofrece un alto grado de flexibilidad, ya que cualquier carpeta puede compartirse con distintos niveles de permisos, dependiendo del usuario o grupo.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Samba es capaz de brindar control sobre quién puede acceder, leer o modificar los archivos en el recurso de almacenamiento, e incluso puede integrarse con redes existentes, que otros servicios, como Active Directory (AD), facilitando la administración centralizada de usuarios. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Entrando en materia, en muchas pequeñas y medianas empresas que usan grupos de trabajo (workgroups), es común tener una carpeta pública sin restricciones para compartir archivos, que suele llamarse “compartida”. Esto no es tan habitual en empresas que utilizan AD, ya que el acceso está condicionado por las políticas del dominio y la autenticación centralizada, lo que puede dificultar abrirla libremente.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para  configurar esta política, simplemente podemos agregarle a &lt;code&gt;smb.conf&lt;/code&gt; de Samba lo siguiente: 
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;[compartida]
   comment = compartida
   path = /home/user/compartida
   guest ok = yes
   guest only = yes
   browseable = yes
   writable = yes
   create mask = 0777
   directory mask = 0777
   public = yes
   force user = user
   vfs objects = full_audit
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Sin embargo, supongamos que queremos llevar un monitoreo estricto de lo que ocurre dentro de esta carpeta. Para ello, Samba ofrece la opción &lt;code&gt;full_audit&lt;/code&gt;, que permite registrar todas las acciones realizadas por los usuarios. Ya hemos hablado de esta funcionalidad en una publicación anterior -donde también explicamos cómo configurar una papelera de reciclaje para los archivos eliminados por los usuarios- y puede ser consultado &lt;a href="https://www.maravento.com/2021/12/samba-full-audit.html" target="_blank"&gt;AQUÍ&lt;/a&gt;. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;No obstante, si no se impone cierto orden dentro de la carpeta compartida, cada usuario comenzará a guardar archivos en cualquier parte, generando un desorden que dificultará encontrar documentos específicos. Para evitar este caos, una solución práctica es clasificar los archivos creando subcarpetas por tipos o áreas de trabajo. Por ejemplo: 
&lt;/div&gt;
&lt;pre style="background-color: #f9f9f9; border: 1px solid rgb(204, 204, 204); font-family: monospace; padding: 10px;"&gt;COMPARTIDA/
├── DIRECCION/
│   ├── file1.txt
│   ├── file2.ppt
│   ├── FOO/
│   │   └── file3.mp4
│   └── BAR/
│       ├── file4.xlsx
│       └── file5.pdf
└── PROYECTOS/
    ├── file6.csv
    └── FRED/
        └── file7.docx
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;De esta manera, cada área gestionará su propia carpeta y, dentro de ella, cada usuario podrá crear su propia sub carpeta personal. Así, encontrar un archivo o carpeta será más fácil y rápido. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Ahora bien, aunque esta estructura suena ordenada y eficiente, no impide que un usuario, ya sea por error o con mala intención, elimine una carpeta importante. Si bien esta acción quedaría registrada en los logs de auditoría, el administrador del sistema podría tardar un tiempo indefinido en detectarla y revertir la situación. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En este orden de ideas, el camino más sensato es otorgar permisos específicos a las carpetas para prevenir este tipo de incidentes. Sin embargo, los permisos tradicionales de archivos en Linux, al aplicarse de forma global a nivel de usuario o grupo, no permiten establecer restricciones tan granulares como, por ejemplo, evitar que un usuario pueda eliminar o renombrar una carpeta sin impedirle modificar su contenido. Esta limitación representa un desafío cuando se busca un control más fino sobre las acciones permitidas dentro de una estructura compartida. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Otro problema que puede surgir con esta estructura es el del almacenamiento en disco. Una carpeta pública sin control de uso puede convertirse rápidamente en un riesgo: un solo usuario podría transferir archivos de gran tamaño y llenar el espacio disponible, dejando a los demás sin recursos para trabajar. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para evitar este escenario, Linux ofrece varias soluciones. Una de ellas es el uso de cuotas de disco (&lt;code&gt;quota&lt;/code&gt;), que permite asignar un límite de espacio por usuario o grupo, evitando así que alguien consuma más allá de lo permitido. Otra alternativa más controlada es crear imágenes de disco individuales por carpeta (por ejemplo, usando &lt;code&gt;dd&lt;/code&gt; o &lt;code&gt;fallocate&lt;/code&gt;) y montarlas como sistemas de archivos independientes. De este modo, cada área, grupo o usuario, tendría un volumen con un límite de espacio claramente definido, lo que facilita la gestión y protege al sistema principal de llenarse por completo. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Si bien las cuotas de disco y el uso de imágenes montadas son soluciones efectivas para controlar el almacenamiento, ambas presentan ciertas desventajas que deben tenerse en cuenta. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En el caso de las cuotas de disco, su configuración puede resultar compleja, especialmente en sistemas que ya están en producción. Requiere habilitar el soporte de cuotas en el sistema de archivos, editar archivos de configuración, y reiniciar servicios o incluso el sistema. Además, las cuotas están vinculadas a usuarios o grupos, no a carpetas específicas, lo que puede ser una limitación cuando se desea restringir el espacio por carpeta compartida sin importar quién escriba en ella. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Por otro lado, el uso de imágenes de disco montadas ofrece mayor control por carpeta, pero implica una administración más manual. Es necesario crear, formatear y montar cada imagen por separado, y monitorear que no se llenen completamente. Además, al estar montadas como volúmenes independientes, su ampliación no es tan flexible como aumentar un directorio común: hay que desmontar la imagen, redimensionarla y volver a montarla, lo cual puede requerir tiempos de inactividad, por no mencionar el riesgo que conlleva manipular imágenes que pueden corromperse, trayendo consigo la pérdida total de la información. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En resumen, ambas soluciones son válidas, pero su implementación y mantenimiento requieren planificación y una administración técnica más rigurosa e intervención manual. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Ante esto nos dimos a la tarea de buscar un punto medio a esta problemática, simple, automatizado y programable, y es la que traemos hoy.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;La propuesta consiste en un bash script, que asigna un tamano a cada carpeta y cuando llegue al límite establecido en el script, elimina cualquier archivo nuevo que se intenta crear o copiar a esta carpeta, sin afectar a los existentes, que se podrán seguir modificando. Pero mejor vamos por pasos:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Permisos&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Asumiendo que ya tenemos nuestra carpeta pública compartida y correctamente configurada en Samba —incluyendo las opciones &lt;code&gt;full_audit&lt;/code&gt; y &lt;code&gt;recycle&lt;/code&gt;, (con los permisos adecuados &lt;code&gt;chmod 755&lt;/code&gt;) así como la estructura de carpetas por áreas (con los permisos adecuados &lt;code&gt;chmod 777&lt;/code&gt;)—, el primer paso será asignar el control de estas carpetas al usuario &lt;code&gt;root&lt;/code&gt; y al grupo &lt;code&gt;sambashare&lt;/code&gt;. Para ello, ejecutamos el siguiente comando: 
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo find /home/user/COMPARTIDA -type d -exec chown root:sambashare {} +
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Con esta acción, protegemos tanto la carpeta principal COMPARTIDA como las sub carpetas creadas por el administrador del sistema contra eliminaciones accidentales o malintencionadas por parte de los usuarios y se restringe su manipulación directa, manteniendo mayor control ciertos sobre elementos críticos dentro de la carpeta compartida, sin afectar lo que los usuarios puedan hacer dentro de esas sub carpetas.
  &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y asegúrese de que su usuario linux, donde corre Samba, pertenezca a este grupo:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo usermod -aG sambashare $USER
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Concluido este primer paso, pasamos al segundo: bash script para automatizar el proceso. 
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Loop&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Hemos creado el bash script &lt;code&gt;watchdir.sh&lt;/code&gt;, que se controla con &lt;code&gt;start|stop|status&lt;/code&gt;, que puede ejecutarse o no con &lt;code&gt;sudo&lt;/code&gt;, y su propósito es controlar la asignación de espacios por carpetas y la acción a tomar si sobrepasa este límite.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Por ejemplo, si tenemos un almacenamiento (HDD|SSD) de 500 GB destinado para la unidad compartida, (un disco duro montado en &lt;code&gt;/home/$USER/compartida&lt;/code&gt;), y dentro de esta tenemos 5 sub carpetas, podemos establecer inicialmente en la variable &lt;code&gt;LIMIT&lt;/code&gt; 50 GB por carpeta (50% de su capacidad), dejando un remanente para la papelera de reciclaje y otras carpetas que más adelante querramos crear o ampliar la capacidad de las existentes. Ejemplo:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;LIMIT=$((50*1024*1024*1024))
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Tambien definimos las carpetas a vigilar: 
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Carpetas a monitorear (sepárelas con espacios si son múltiples)
WATCH_DIR="/home/user/COMPARTIDA/dir1 /home/user/COMPARTIDA/dir2"
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Un caso real podría ser: 
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# To monitor subfolders inside a parent folder:
MAINDIR="/home/user/COMPARTIDA"
# Subfolder names (separate with spaces if multiple):
SUBDIRS="IMAGENES PROYECTOS RECURSOS SOPORTE DIRECCION"
WATCH_DIR=""
for d in $SUBDIRS; do
   WATCH_DIR+="$MAINDIR/$d "
done
WATCH_DIR="${WATCH_DIR% }"
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;El script tiene una variable llamada &lt;code&gt;DELETE_DIR&lt;/code&gt;, que, si no existe, lanzará un menú: 
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4L0Y-UpT_A2DmFmNXdcczik9X-zfyEXA-BmkRgGFR0mhc1YvmzKddal5PvrlxcriRfWkOhto6ISZkdMN4m6qB3CjAF6PxE_IS37M_JAfEkP3h-uCPXuXKNobovTebeHS3MQtUbKw7HKO_jm1VO605ajQ6F0Vh9LFXpF7naziP98lF4hzWTs-SFJNQ6R-v/s1600/compartida2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="201" data-original-width="695" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4L0Y-UpT_A2DmFmNXdcczik9X-zfyEXA-BmkRgGFR0mhc1YvmzKddal5PvrlxcriRfWkOhto6ISZkdMN4m6qB3CjAF6PxE_IS37M_JAfEkP3h-uCPXuXKNobovTebeHS3MQtUbKw7HKO_jm1VO605ajQ6F0Vh9LFXpF7naziP98lF4hzWTs-SFJNQ6R-v/s1600/compartida2.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Si no existe el path de la variable DELETE_DIR, el script preguntará&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
  &lt;li&gt;Eliminarlos definitivamente&lt;/li&gt;
  &lt;li&gt;Enviarlos a la papelera de reciclaje&lt;/li&gt;
  &lt;li&gt;Enviarlos a una carpeta (hay que escribir el path completo manualmente o establecerlo en la variable &lt;code&gt;DELETE_DIR&lt;/code&gt;) &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota:&lt;/u&gt;
  Se recomienda que el path definido en &lt;code&gt;DELETE_DIR&lt;/code&gt; esté en una ubicación diferent al path definido en &lt;code&gt;WATCH_DIR&lt;/code&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Finalmente, una vez iniciado, el script monitorea estas carpetas con &lt;a href="https://linux.die.net/man/1/inotifywait" target="_blank"&gt;inotifywait&lt;/a&gt;, un sencillo programa que monitoriza eventos del sistema de archivos y toma la acción establecida al llegar al límite, impidiendo de esta manera que los usuarios sigan escribiendo en la carpeta.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y si tiene definidas las variables &lt;code&gt;WATCH_DIR&lt;/code&gt; y &lt;code&gt;DELETE_DIR&lt;/code&gt;, y el path existe, entonces el menú interactivo no saldrá, por tanto puede programar el script en el &lt;code&gt;cron&lt;/code&gt; (programador de tareas de linux) para que inicie con el sistema.
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;@reboot /path_to/watchdir.sh start
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Alternativa&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
Si no desea aplicar la propiedad &lt;code&gt;root:sambashare&lt;/code&gt; ni establecer permisos 755 a la carpeta compartida, pero aún quiere conservar ordenada la estructura que ha definido, puede programar la ejecución del siguiente script en &lt;code&gt;cron&lt;/code&gt;, cada minuto. Este otro script moverá automáticamente a la papelera cualquier archivo o carpeta no autorizada que los usuarios creen en la raíz de la carpeta compartida. Asegúrese de ajustar las rutas y nombres de las carpetas según su configuración:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash

# Detectar usuario local con sesión activa
local_user=$(who | awk '/(:0)/ {print $1; exit} END {if (NR==0) print $1}')

# Definir rutas
SHAREDFOLDER="/home/$local_user/COMPARTIDA"

# Esta carpeta debe ser creada automáticamente por Samba mediante el módulo VFS (vfs_recycle) y tener la línea "hide files = /recycle/"
# consulte https://www.maravento.com/2021/12/samba-full-audit.html
RECYCLEFOLDER="$SHAREDFOLDER/recycle"

# Ir a la carpeta compartida
cd "$SHAREDFOLDER" || exit 1

# Mover todo lo que no sea una carpeta estándar a la papelera
find . -maxdepth 1 -mindepth 1 \
  ! -name "IMAGENES" \
  ! -name "PROYECTOS" \
  ! -name "RECURSOS" \
  ! -name "SOPORTE" \
  ! -name "DIRECCION" \
  ! -name "recycle" \
  -exec mv -f --backup=numbered "{}" "$RECYCLEFOLDER/" \;

# Volver al home
cd ~
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Puede descargar el script &lt;code&gt;watchdir.sh&lt;/code&gt; en nuestro repositorio &lt;a href="https://github.com/maravento/vault/tree/master/scripts" target="_blank"&gt;vault/scripts&lt;/a&gt; o directamente &lt;a href="https://raw.githubusercontent.com/maravento/vault/master/scripts/bash/watchdir.sh" target="_blank"&gt;AQUÍ&lt;/a&gt;
&lt;/div&gt;
&amp;nbsp;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/7986917978253723649" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/7986917978253723649" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2025/05/control-de-carpetas-compartidas.html" rel="alternate" title="Control de carpetas compartidas" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxNY-0PZ5WqPlbqgPJzZZ34oCljpu2GLVlBSojQpRky-pp8R0x1d8zgpO21btnl7HxFiG_PVucaRVYooAYVgC_MesscOimBUBDIpVGJ8SlP1l6TxjeGSWCafPogKWEg4Y5iBVkg_MtF2Mp3Gynmr3ePlyL4fKQ-syBYlpI1ZQKZSj8_MzVbzqKf61hLdot/s72-c/compartida.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-4807140762092403910</id><published>2025-02-06T11:25:00.054-05:00</published><updated>2025-12-10T18:02:04.315-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="batch"/><category scheme="http://www.blogger.com/atom/ns#" term="Firewall"/><category scheme="http://www.blogger.com/atom/ns#" term="unifi"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type="text">UniFi como Servicio</title><content type="html">&lt;div class="separator" style="clear: both;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKJ7J9KLEjdEtVyyg-037BqPXm676ygNO4ArP91KePsZez522bMYhUJtPp46s7olarCcGhDUhrNed5l-PQEneRroOLsEUs1MpACAulH_0cgAnYLZez3porQApEfRPtFpH4FeRnXPlltcnTt3x5ZtGPJaC1UCGAgOWkQEtd-IlSLZb16deuyGafCu3w1kt2/s1600/unifi-setup-cover.png" style="display: block; padding: 1lh 0px; text-align: center;"&gt;
    &lt;img alt="" border="0" data-original-height="797" data-original-width="1436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKJ7J9KLEjdEtVyyg-037BqPXm676ygNO4ArP91KePsZez522bMYhUJtPp46s7olarCcGhDUhrNed5l-PQEneRroOLsEUs1MpACAulH_0cgAnYLZez3porQApEfRPtFpH4FeRnXPlltcnTt3x5ZtGPJaC1UCGAgOWkQEtd-IlSLZb16deuyGafCu3w1kt2/s1600/unifi-setup-cover.png" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;UniFi Software (AKA: UniFi Network Application, Unifi Controller, Unifi Network Server, Unifi OS Server, etc.) se destaca en el mercado de administración de redes por su enfoque centralizado y su integración fluida con los dispositivos UniFi. A diferencia de otras soluciones, que suelen requerir configuraciones complejas o hardware propietario costoso, UniFi Software ofrece una plataforma intuitiva con una gestión unificada desde una interfaz web moderna.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Entre sus principales ventajas frente a la competencia destacan su fácil implementación, actualizaciones constantes sin interrupciones y compatibilidad con múltiples métodos de autenticación. Además, ofrece una sólida integración con herramientas de análisis de tráfico y una gestión eficiente de grandes volúmenes de dispositivos sin afectar el rendimiento, lo que lo convierte en una solución escalable. También cuenta con un foro muy activo para soporte y comunidad. Sin embargo, su mayor ventaja es el Hotspot, una opción líder en el sector gracias a su facilidad de uso. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Instalación Tradicional&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Entrando en materia, la instalación de UniFi Software es relativamente sencilla. Para Windows, basta con descargar el instalador del &lt;a href="https://ui.com/download/releases/network-server" target="_blank"&gt;sitio web oficial&lt;/a&gt; y con un doble clic comenzará la instalación y cada vez que inicie el equipo, debemos iniciar el programa, aunque también podemos crear una tarea en el programador de tareas de Windows para que se ejecute en cada inicio. Pero hay otra solución, más automatizada y que abordaremos hoy.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Instalación como servicio&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para Linux, Glenn solucionó este problema con el script &lt;a href="https://glennr.nl/s/unifi-easy-update" target="_blank"&gt;unifi-easy-update&lt;/a&gt;, que automatiza este proceso, pero para Windows no pudimos encontrar ninguno, así que nos dimos a la tarea de hacerlo. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Antes que nada debemos aclarar que este script se debe ejecutar solamente en Windows 10/11. Dicho esto, al hacer doble clic en el script, verifica que se ejecute con privilegios de administrador y aparecerá el siguiente menú. &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR2GX8gqfRwQ-2fPDDhHGsfBaV9g6s1MtswSK0CtdZDa_7kaR6Mve8q_b4eF5tSCx5RQ1rp_ehRPd5_gViHbruphac8TDRPE5pbg8ug0jCVrMHisG1RA_4iuPT6lNP1xnASbrr1Tg-0bs9z7VjAPXo0-tgGnaFpXKu2jB-kbLDqBRp7wHrlOIjdQVvGdKB/s1600/unifi-service.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;&lt;img alt="" border="0" data-original-height="513" data-original-width="979" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR2GX8gqfRwQ-2fPDDhHGsfBaV9g6s1MtswSK0CtdZDa_7kaR6Mve8q_b4eF5tSCx5RQ1rp_ehRPd5_gViHbruphac8TDRPE5pbg8ug0jCVrMHisG1RA_4iuPT6lNP1xnASbrr1Tg-0bs9z7VjAPXo0-tgGnaFpXKu2jB-kbLDqBRp7wHrlOIjdQVvGdKB/s1600/unifi-service.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Selector de Unifi Software (Network &amp;amp; OS Server)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Hay varias opciones. Si elige la primera opción 1 (instalación), el script verificará lo siguiente: &lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;Si está curl presente en su sistema Windows. Es importante resaltar que a partir de Windows 10 (build 17063 o superior) y Windows 11, curl ya viene integrado al SO. Puede verificarlo en el path &lt;code&gt;C:\Windows\System32\curl.exe&lt;/code&gt;. &lt;/li&gt;
  &lt;li&gt;Si existe Java previamente instalado, aborta, por tanto, debe desinstalar Java. &lt;/li&gt;
  &lt;li&gt;Si existe la carpeta &lt;code&gt;%UserProfile%\Ubiquiti UniFi\&lt;/code&gt;, aborta, por tanto, debe desinstalar Unifi y eliminar la carpeta en cuestión. &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: justify;"&gt;Una vez superado estos controles, saldrá un segundo menú, en el cual elegirá la versión de Unifi que quiera instalar.&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK0Iq2LnakyijT4vcIfWQWmr5LOAnWBwYJlzpQlKY64EzrRKso69qITY_SjquRS0EMGOqFcOdhMHz3VXSqkmkmRo8rnPWxOop-N0nZ5Y8w_dCFjqvKWgQih_VRFHSXs3Cnr2Qe8DkrxkcTKkk1ZKT7HrcZxQgAAOcXfD5aBfm3x3SwSIMn0Ob8l4XuOuxY/s1600/unifi-service-2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;&lt;img alt="" border="0" data-original-height="515" data-original-width="980" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK0Iq2LnakyijT4vcIfWQWmr5LOAnWBwYJlzpQlKY64EzrRKso69qITY_SjquRS0EMGOqFcOdhMHz3VXSqkmkmRo8rnPWxOop-N0nZ5Y8w_dCFjqvKWgQih_VRFHSXs3Cnr2Qe8DkrxkcTKkk1ZKT7HrcZxQgAAOcXfD5aBfm3x3SwSIMn0Ob8l4XuOuxY/s1600/unifi-service-2.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Selector de versiones para Unifi Network&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: Hay administradores que prefieren la versión más reciente (9x), en cambio, otros, más conservadores, se inclinan por usar una versión ya probada en entornos de producción (8x), por tanto, el script pone a disposición ambas versiones.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y finalmente el script procederá con la instalación silenciosa de Unifi&amp;nbsp;con su dependencia&amp;nbsp; &lt;a href="https://adoptium.net/es/temurin/releases/?os=windows&amp;amp;arch=x64&amp;amp;package=jre" target="_blank"&gt;JRE x64 LTS Eclipse Temurin&lt;/a&gt;&amp;nbsp;y abrirá los puertos en el firewall. Al terminar la instalación deberá reiniciar para aplicar cambios.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Después de reiniciar, ya no necesita abrir la app de Unifi, porque inicia con su sistema como un servicio. Y para acceder al software de administración, abra su navegador e ingrese a la URL: &lt;code&gt;https://localhost:8443&lt;/code&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para desinstalarlo, no lo haga por el Panel de Control. Solo ejecute el script nuevamente y elija la opción "Remove" y al terminar reinicie su PC. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Otra opción es para hacer una copia de seguridad de la configuración de Unifi, la cual enviará la carpeta &lt;code&gt;%HOMEDRIVE%\unifi&lt;/code&gt;. Tenga en cuenta que debe tener activado el autobackup en la configuración de Unifi y debe existir al menos un backup automático generado para que pueda realizar la acción. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;La otra opción es para agregar la dirección IPv4 del PC donde se encuentra instalado Unifi (deberá elegirla manualmente y reiniciar el PC al terminar). Ejemplo &lt;code&gt;https://192.168.1.1:8443&lt;/code&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Importante&lt;/u&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; - No elimine la carpeta &lt;code&gt;%HOMEDRIVE%\unifi&lt;/code&gt;, ya que los instaladores los usa el script para la desinstalación de Unifi y sus componentes y en esta carpeta se almacenan los backups. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt; - El instalador ejecuta algunos comandos de PowerShell, por tanto, en Windows 11 24h2 o superior, si al ejecutar el script de instalación o desinstalación aparece un error similar a: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;CategoryInfo : SecurityError: (:) [], PSSecurityException 
FullyQualifiedErrorId : UnauthorizedAccess
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt; Deberá desactivar temporalmente la restricción de ejecución de scripts. Para ello, abra Windows PowerShell con privilegios administrativos y ejecute: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;:: Para desactivar:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
:: Para restablecer:
Set-ExecutionPolicy Restricted -Scope CurrentUser -Force
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para Unifi OS Server el procedimiento es similar. Solo debe cumplir los &lt;a href="https://help.ui.com/hc/en-us/articles/34210126298775-Self-Hosting-UniFi" target="_blank"&gt;requisitos&lt;/a&gt; que este nuevo software exige:&amp;nbsp;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ft9YvvBygh0tsOcdDWT-DLxp9o-mZayOZKjW85CHXUrp0xfPB-KAkkSrq39kcg56PubGPWNzFIMoZ_KYQL5mYjhaO2cSCqA46t4QXo6XOGV3NztybrNAQq-AdaixhqXF3dwuguZXF9a6h_y1ffDJDcTLUs0Pz-SptlAV4sygQ87ppqamC9FeO13KAyK1/s1600/unifi-service-3.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;&lt;img alt="" border="0" data-original-height="508" data-original-width="981" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ft9YvvBygh0tsOcdDWT-DLxp9o-mZayOZKjW85CHXUrp0xfPB-KAkkSrq39kcg56PubGPWNzFIMoZ_KYQL5mYjhaO2cSCqA46t4QXo6XOGV3NztybrNAQq-AdaixhqXF3dwuguZXF9a6h_y1ffDJDcTLUs0Pz-SptlAV4sygQ87ppqamC9FeO13KAyK1/s1600/unifi-service-3.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Requisitos de Unifi OS Server&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;&lt;u&gt;Nota&lt;/u&gt;: Si solo tiene unos APs y switch Unifi, no recomendamos su uso, al menos por el momento y esperar a que se liberen nuevas versiones.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Puede descargar el script en nuestro repositorio &lt;a href="https://github.com/maravento/vault" target="_blank"&gt;Vault&lt;/a&gt;, o directamente &lt;a href="https://raw.githubusercontent.com/maravento/vault/refs/heads/master/scripts/batch/unifisetup.bat" target="_blank"&gt;AQUÍ&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Esperamos que les sea útil esta herramienta de instalación. &lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/4807140762092403910" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/4807140762092403910" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2025/02/unifi-como-servicio.html" rel="alternate" title="UniFi como Servicio" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKJ7J9KLEjdEtVyyg-037BqPXm676ygNO4ArP91KePsZez522bMYhUJtPp46s7olarCcGhDUhrNed5l-PQEneRroOLsEUs1MpACAulH_0cgAnYLZez3porQApEfRPtFpH4FeRnXPlltcnTt3x5ZtGPJaC1UCGAgOWkQEtd-IlSLZb16deuyGafCu3w1kt2/s72-c/unifi-setup-cover.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-7893143241939646420</id><published>2024-10-30T12:05:00.043-04:00</published><updated>2024-11-02T09:01:45.652-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="Cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="sync"/><category scheme="http://www.blogger.com/atom/ns#" term="zenity"/><title type="text">Instancias de MEGAsync</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8IFO8DzsKZYyhIo1bOCSZedCErNnpy0All3iWVeVFlxtgO7bTUIU2HZCTOj1d7vLid_1nCKUWzhCUR9Fd5Qz4NYuMqGmZmSoBP1sIGwTO1JmZ_-HXX4BkjobAueHDmpwiaW7ddNz3OE2mqpTEfCc9XaK1GsFWiP3d6g4mU7N6Xxh4Vxh9p0c9B4OZ1pG9/s665/mega-cloud.png" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="434" data-original-width="665" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8IFO8DzsKZYyhIo1bOCSZedCErNnpy0All3iWVeVFlxtgO7bTUIU2HZCTOj1d7vLid_1nCKUWzhCUR9Fd5Qz4NYuMqGmZmSoBP1sIGwTO1JmZ_-HXX4BkjobAueHDmpwiaW7ddNz3OE2mqpTEfCc9XaK1GsFWiP3d6g4mU7N6Xxh4Vxh9p0c9B4OZ1pG9/s320/mega-cloud.png" width="320" /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;br /&gt;Google Drive no tiene cliente oficial para Linux y durante años han surgido muchos proyectos para cubrir este hueco. Pero, en 2019, &lt;a href="https://workspace.google.com/blog/product-announcements/enhancing-security-controls-for-google-drive-third-party-apps" target="_blank"&gt;Google anunció controles más estrictos con aplicaciones de terceros&lt;/a&gt;&amp;nbsp;y puso en revisión a muchas de estas aplicaciones que usaban su API para conectarse a sus servicios. Y, a comienzos de 2024, &lt;a href="https://developers.google.com/drive/api/guides/api-specific-auth?hl=es" target="_blank"&gt;puso más restricciones a los desarrolladores&lt;/a&gt;&amp;nbsp;y agregó un proceso de verificación anual, largo y costoso, y las apps que no entraron en este proceso o no pagaron, quedaron bloqueadas. Una clara política de "no hago ni dejo hacer".&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Entonces, aplicaciones como&amp;nbsp;&lt;a href="https://www.overgrive.com/" target="_blank"&gt;overGrive&lt;/a&gt;,&amp;nbsp;&lt;a href="https://with.raidrive.com/t/google-drive-this-app-is-blocked/8989" target="_blank"&gt;Raidrive,&lt;/a&gt;&amp;nbsp;&lt;a href="https://panic.com/transmit/" target="_blank"&gt;Transmit&lt;/a&gt;,&amp;nbsp;&lt;a href="https://github.com/vitalif/grive2#different-oauth2-client-to-workaround-over-quota-and-google-approval-issues" target="_blank"&gt;gdrive2&lt;/a&gt;, etc., que usaban la API para conectarse a Google Drive, quedaron por fuera. A la fecha, aún hay algunas soportadas, tales como&amp;nbsp;&lt;a href="https://rclone.org/" target="_blank"&gt;Rclone&lt;/a&gt;, &lt;a href="https://freefilesync.org/" target="_blank"&gt;FreeFileSync&lt;/a&gt;, y otras, pero ignoramos por cuanto tiempo o si finalmente pasarán por caja.&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpXHpsb88LAHOkqdVP5DTZIBPSRmOpIyoveMBZJ3QkfawrOEUQWDr8Hi6wACEve2wZJgFflgATW-_1uBIHjKxQrORsmYQ_uLgpS1LZqTGmea95piPnhhYgJxW1_SwKwhb4vbRLotWMBmOuDZMODsGWvkmGQesAv3qMl80yEZvQRe2I_C2cNVtYzZFO903l/s1600/mega-gdriveblock.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="372" data-original-width="727" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpXHpsb88LAHOkqdVP5DTZIBPSRmOpIyoveMBZJ3QkfawrOEUQWDr8Hi6wACEve2wZJgFflgATW-_1uBIHjKxQrORsmYQ_uLgpS1LZqTGmea95piPnhhYgJxW1_SwKwhb4vbRLotWMBmOuDZMODsGWvkmGQesAv3qMl80yEZvQRe2I_C2cNVtYzZFO903l/s1600/mega-gdriveblock.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Mensaje de bloqueo de OverGrive al intentar conectarse a Google Drive&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Y a pesar de que algunos productos &lt;a href="https://www.ghisler.com/googledrivehelp.htm" target="_blank"&gt;ofrecen alternativas interesantes&lt;/a&gt;, para hacer un workaround a estas medidas, son complicadas y limitadas, tanto para desarrolladores como para usuarios comunes. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;En el video&amp;nbsp;&lt;a href="https://www.youtube.com/watch?v=UMiB5Z7n6Y8" target="_blank"&gt;Google Drive hates developers now&lt;/a&gt;, señalan bien esta problemática, y la solución: "paga o abandona el barco".&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Alternativas&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Otros servicios en la nube, como&amp;nbsp;&lt;a href="https://my.pcloud.com/" target="_blank"&gt;pCloud&lt;/a&gt;, &lt;a href="https://tresorit.com/" target="_blank"&gt;Tresorit&lt;/a&gt;, &lt;a href="https://www.box.com/" target="_blank"&gt;Box&lt;/a&gt;, &lt;a href="https://www.sync.com/" target="_blank"&gt;Sync&lt;/a&gt;, &lt;a href="https://360.yandex.com/disk/" target="_blank"&gt;Yandex&lt;/a&gt;, &lt;a href="https://www.dropbox.com/es/" target="_blank"&gt;Dropbox&lt;/a&gt;,&amp;nbsp;&lt;a href="https://onedrive.live.com/login/" target="_blank"&gt;Microsoft OneDrive&lt;/a&gt;, son algunas de las opciones más usadas, pero tienen muchas limitaciones de espacio gratuito. Otra alternativa es crear nuestra propia nube con&amp;nbsp;&lt;a href="https://nextcloud.com/" target="_blank"&gt;Nextcloud&lt;/a&gt;, &lt;a href="https://owncloud.com/" target="_blank"&gt;ownCloud&lt;/a&gt;, &lt;a href="https://casaos.zimaspace.com/" target="_blank"&gt;CASAOS&lt;/a&gt;, etc., pero requieren de un servidor de alojamiento en línea 24/7, y no todos cuentan con esos recursos.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero, para los usuarios de a pie, hay una alternativa, que actualmente es una de las que más espacio proporciona gratuito, cifrado extremo a extremo y cliente compatible con Linux. Hablamos de &lt;a href="https://mega.io/?aff=Pe6pmCEfvRI" target="_blank"&gt;MEGA&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;MEGAsync&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Sin entrar en detalles de la historia de &lt;a href="https://mega.io/?aff=Pe6pmCEfvRI" target="_blank"&gt;MEGA&lt;/a&gt;, que puede ser consultada en &lt;a href="https://es.wikipedia.org/wiki/Mega_(sitio_web)" target="_blank"&gt;Wikipedia&lt;/a&gt;, este servicio en la nube proporciona actualmente&amp;nbsp;&lt;a href="https://mega.io/es/storage" target="_blank"&gt;20 GB de almacenamiento gratuito&lt;/a&gt; (y si eres de los afortunados que abrió una cuenta en los primeros años de este servicio, regalaban 50 GB) y con &lt;a href="https://mega.io/pricing?aff=Pe6pmCEfvRI" target="_blank"&gt;planes aceptables&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;20 GB no son suficientes&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Si no queremos comprar un plan, podemos abrir varias cuentas y lanzamos una instancia de MEGAsync por cada cuenta, dentro del mismo usuario y luego compartimos las carpetas con acceso completo entre las cuentas creadas y así tendremos todos los GB que queramos a nuestra disposición.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Lanzando múltiples instancias de MEGAsync en Ubuntu 22.04/24.04&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;&lt;a href="https://github.com/NicoVarg99/MEGA-Instances" target="_blank"&gt;NicoVarg99&lt;/a&gt; desarrolló un script que hace precisamente esto, sin embargo, el repositorio lleva 6 años de inactividad, por tanto, hicimos un fork, lo ajustamos y republicamos.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Lo primero es instalar el &lt;a href="hhttps://mega.io/desktop?aff=Pe6pmCEfvRI" target="_blank"&gt;cliente MEGAsync&lt;/a&gt;. Para Ubuntu 24.04: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;wget https://mega.nz/linux/repo/xUbuntu_24.04/amd64/megasync-xUbuntu_24.04_amd64.deb &amp;amp;&amp;amp; sudo apt install "$PWD/megasync-xUbuntu_24.04_amd64.deb"
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Instalamos las dependencias: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt install zenity libatk-adaptor libgail-common libgtk2.0-0 # or libgtk2.0-0t64 for Ubuntu 24.04
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Descargamos el script actualizado: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo wget -O /usr/bin/msyncs https://raw.githubusercontent.com/maravento/vault/master/scripts/bash/msyncs
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Le damos permisos: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo chmod 755 /usr/bin/msyncs
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y lo ejecutamos, con start | stop | status (sin sudo sin root). Si es la primera vez: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;msyncs start
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;El script es con &lt;a href="https://help.gnome.org/users/zenity/stable/index.html.es" target="_blank"&gt;Zenity,&lt;/a&gt; por tanto, la interfaz es agradable y muy intuitiva. Al iniciar lanzará una pregunta: &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj3yLN92PvVvZIKGwY3IpxxpDsfWt0yDFUgShDHcH-iGO1p3NoZbpMqjhL5P6hwabVrDAsn3VPBgEIDOieYVXRnJydo77axoKsiYl0epOU4-FPEwnIuRljirmuYJxGScPrg4KZPDgS7S90SxJY-p8Pf0M_xv-hcLpBZEme4QjWYqY9U5jAJ-AnLnHD8Rhu/s1600/mega-question.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="213" data-original-width="584" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj3yLN92PvVvZIKGwY3IpxxpDsfWt0yDFUgShDHcH-iGO1p3NoZbpMqjhL5P6hwabVrDAsn3VPBgEIDOieYVXRnJydo77axoKsiYl0epOU4-FPEwnIuRljirmuYJxGScPrg4KZPDgS7S90SxJY-p8Pf0M_xv-hcLpBZEme4QjWYqY9U5jAJ-AnLnHD8Rhu/s1600/mega-question.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Primera pregunta del script&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Luego, pedirá cuantas instancias desea levantar del cliente &lt;a href="https://mega.io/desktop?aff=Pe6pmCEfvRI" target="_blank"&gt;MEGAsync&lt;/a&gt; (que corresponderán al número de cuentas creadas en este servicio) e introducimos un número del 1 al 9:&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ctr2mtaO8NLGb4-Aojc_oZdwt4smPTfaZZNXfIJ07zL2JXo2ROTXKupm4gDbx5E3QPce2G58_Uj1Rw34xomhyr4rbAfqt6NqtskLv4eFz8Ah2HSWXxYeRBvlIlZ9i7Xu049gMSPJWQzq1dV8t8uFeV78qOgFU4lXkQudcnJkIyy7I35orPvmzw4kiKVd/s1600/mega-number.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="220" data-original-width="407" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7ctr2mtaO8NLGb4-Aojc_oZdwt4smPTfaZZNXfIJ07zL2JXo2ROTXKupm4gDbx5E3QPce2G58_Uj1Rw34xomhyr4rbAfqt6NqtskLv4eFz8Ah2HSWXxYeRBvlIlZ9i7Xu049gMSPJWQzq1dV8t8uFeV78qOgFU4lXkQudcnJkIyy7I35orPvmzw4kiKVd/s1600/mega-number.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Escriba el número de instancias a ejecutar&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Y para no alargar esto con tantas imágenes, al proporcionar el número y pulsar aceptar, saldrá otra ventana en la cual le daremos un nombre cualquiera a cada instancia (que se asociará más adelante con cada cuenta de correo que se usó para crear la cuenta en MEGA) y se abrirá una instancia del cliente &lt;a href="https://mega.io/desktop?aff=Pe6pmCEfvRI" target="_blank"&gt;MEGAsync&lt;/a&gt; para cada cuenta, en la cual introduciremos nuestro usuario y contraseña (y 2FA si lo tiene activo) y es todo.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Al terminar, cada vez que inicie su PC, iniciarán las instancias de&amp;nbsp;&lt;a href="https://mega.io/desktop?aff=Pe6pmCEfvRI" target="_blank"&gt;MEGAsync&lt;/a&gt; en la misma cuenta de su usuario actual. &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeCtmMKP2M7kVIZcEzSIqqbVM5YV_gFlcHvh3pzdFE_52bVTIoyf2pxzLhPouvLqvm7YqotXsrqBlRn_qJhLYXkozAKvTgqK0M7S69jIUJwqgWQC7MAiWZzTeK9uU7naRDRFqTr46p_WN76W2M8lCL73ljsW1nVLGutXTNl6LFmUFRmd8Lb1kU7fx53bm4/s1600/mega-icons.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="42" data-original-width="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeCtmMKP2M7kVIZcEzSIqqbVM5YV_gFlcHvh3pzdFE_52bVTIoyf2pxzLhPouvLqvm7YqotXsrqBlRn_qJhLYXkozAKvTgqK0M7S69jIUJwqgWQC7MAiWZzTeK9uU7naRDRFqTr46p_WN76W2M8lCL73ljsW1nVLGutXTNl6LFmUFRmd8Lb1kU7fx53bm4/s1600/mega-icons.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;2 instancias del MEGAsync, cada una asociada a una cuenta de correo,&lt;br /&gt;&amp;nbsp;ejecutándose en el escritorio de la misma cuenta de usuario&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Para detenerlo o conocer su estado de ejecución: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;msyncs stop
msyncs status
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Esperamos que disfruten del bash script. Para mayor información, visite nuestro repositorio &lt;a href="https://github.com/maravento/vault" target="_blank"&gt;Vault&lt;/a&gt;.&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/7893143241939646420" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/7893143241939646420" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2024/10/instancias-de-megasync.html" rel="alternate" title="Instancias de MEGAsync" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8IFO8DzsKZYyhIo1bOCSZedCErNnpy0All3iWVeVFlxtgO7bTUIU2HZCTOj1d7vLid_1nCKUWzhCUR9Fd5Qz4NYuMqGmZmSoBP1sIGwTO1JmZ_-HXX4BkjobAueHDmpwiaW7ddNz3OE2mqpTEfCc9XaK1GsFWiP3d6g4mU7N6Xxh4Vxh9p0c9B4OZ1pG9/s72-c/mega-cloud.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-9095772691952152118</id><published>2024-06-11T18:08:00.206-04:00</published><updated>2025-10-20T14:07:58.689-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="git"/><category scheme="http://www.blogger.com/atom/ns#" term="Hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="iptables"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubiquiti"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="unifi"/><title type="text">Unifi Hotspot con Iptables</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ZRXyOe-ZB7IvrhTDMVdPnVFz6xl56qcMvBNhIpGYedgsZ_cTrIAHWnuWHfJOdSzqXArIo5PeYOvyzPjiv3yIHcznyaS6fRENnBZyKEnrUIYplgq4GkgclHpjqbO3ZVZYGxR2Qqu2jHw7ySjafkPpkWCO2BhTtLe4JNUeu1vyaEANE7hOmujYo7tgdp3G/s903/unifi-1.png" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="852" data-original-width="903" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ZRXyOe-ZB7IvrhTDMVdPnVFz6xl56qcMvBNhIpGYedgsZ_cTrIAHWnuWHfJOdSzqXArIo5PeYOvyzPjiv3yIHcznyaS6fRENnBZyKEnrUIYplgq4GkgclHpjqbO3ZVZYGxR2Qqu2jHw7ySjafkPpkWCO2BhTtLe4JNUeu1vyaEANE7hOmujYo7tgdp3G/s320/unifi-1.png" width="320" /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;br /&gt;La tecnología UniFi de Ubiquiti ofrece una gestión centralizada y escalable, ideal para todo tipo de redes, desde pequeñas oficinas hasta grandes empresas. Con hardware avanzado, proporciona un rendimiento robusto y roaming sin interrupciones. Su interfaz amigable, tanto en el panel web como en la aplicación móvil, facilita la gestión y el monitoreo de la red. Además, ofrece características de seguridad avanzadas y actualizaciones regulares, garantizando una red segura y actualizada. En resumen, UniFi combina rendimiento, facilidad de uso y seguridad en una solución de gestión de redes eficiente y económica.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Sin embargo, a pesar de estas bondades y de que su hardware vale cada centavo, la adquisición de estos equipos puede estar fuera del alcance de muchos. Es por eso que hoy vamos a combinar la tecnología UniFi hotspot con administración Linux, en un intento por abaratar costos.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;El objetivo de este post no es reemplazar los UDM (UniFi Dream Machine), Gateway, Cloud Key, o cualquiera de los productos UniFi para administrar redes. Si ya tiene uno, bien por ti. Sin embargo, no todos pueden darse ese lujo, y la idea es ofrecer una alternativa al sysadmin que escasamente le alcanzó para comprar un Access Point UniFi y nada más, y necesita administrar su red local con el Hotspot de Unifi, pero aplicando restricciones (iptables, squid, etc.), Si ese es su caso, ha llegado al lugar indicado. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Descripción del hardware y software usado en la prueba&lt;/b&gt;
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqLTlv8vLtq56MPLnChzPDlNwsGK8R-rRgJqiNajOWDi_TetdBg58jGz5ioAQxX7dyDLxBJ6Bzxm5zMODCGQJUsb-A1DW3dtdVeapWAlVJP9EQybs3lqs7NQi8qelk5ujjOX2oeHm8SrkqB3nl-VkJf9YbABkR87_VUqztfgxeZv1Dj6G3pIgeRmlk2gAi/s1600/unifi-network.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;&lt;img alt="" border="0" data-original-height="427" data-original-width="1244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqLTlv8vLtq56MPLnChzPDlNwsGK8R-rRgJqiNajOWDi_TetdBg58jGz5ioAQxX7dyDLxBJ6Bzxm5zMODCGQJUsb-A1DW3dtdVeapWAlVJP9EQybs3lqs7NQi8qelk5ujjOX2oeHm8SrkqB3nl-VkJf9YbABkR87_VUqztfgxeZv1Dj6G3pIgeRmlk2gAi/s1600/unifi-network.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Topología Unifi&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;- AP Unifi &lt;a href="https://amzn.to/4aQPeUb" target="_blank"&gt;U6-pro wifi 6&lt;/a&gt;, conectado al switch vía cable UTP Cat 6a y conector blindado. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Switch Ubiquiti &lt;a href="https://amzn.to/3yXw7e4" target="_blank"&gt;USW-PRO-24-POE&lt;/a&gt;&amp;nbsp;(o también un &lt;a href="https://amzn.to/4c9USSE" target="_blank"&gt;USW-LITE-8-POE&lt;/a&gt;), elegidos porque son switch de PoE activo, que manejan 802.3af, que es el estándar del AP U6-Pro usado en la prueba. Pero si tiene otro AP Unifi sin su inyector PoE, consulte el post &lt;a href="https://support.hostifi.com/en/articles/7826585-unifi-which-devices-use-active-poe-and-passive-poe" target="_blank"&gt;Unifi which devices use active poe and passive poe&lt;/a&gt;, para determinar qué estándar PoE maneja su AP y así pueda elegir el switch adecuado. Si su AP ya tiene su inyector PoE y tiene un switch de Unifi o de otra marca, ignore la anterior recomendación, ya que igualmente sirve. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Script interactivo de&amp;nbsp;&lt;a href="https://get.glennr.nl/unifi/install/unifi-8.2.93.sh" target="_blank"&gt;Glennr&lt;/a&gt;, que instala y configura todas las dependencias de Unifi Network v8.2.93 en Ubuntu. Para mayor información, pulse&amp;nbsp;&lt;a href="https://glennr.nl/" target="_blank"&gt;AQUÍ&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Servidor HP Proliant ML110 G9, con Ubuntu 22.04.4, iptables v1.8.7, isc-dhcp-server v4.4.1, rsyslogd v8.2112.0 y Unifi Network v8.2.93, dos interfaces de red Ethernet; una para WAN (proveedor de internet) y otra LAN (para los clientes), conectada al switch vía cable UTP Cat 6a. Pero no necesariamente debe ser un "servidor". Según el&amp;nbsp;&lt;a href="https://help.ui.com/hc/en-us/articles/360012282453-Self-Hosting-a-UniFi-Network-Server" target="_blank"&gt;sitio oficial&lt;/a&gt;, los requerimientos de esta app son:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Requisitos mínimos de Unifi Network&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;&lt;u&gt;Software:&lt;/u&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- SO Linux: Ubuntu Desktop / Server 22.04; Debian 11 "Bullseye" / Windows: Windows 10; Windows Server 2016, macOS: Mavericks 10.9, 10.10 Yosemite, 10.11 El Capitan, 10.12 Sierra, 10.13 High Sierra, 10.14 Mojave, 10.15 Catalina.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Java is no longer required as of UniFi Network 7.5&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Web Browser: Google Chrome&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- MongoDB: version 3.6 or later. Mongo is offered bundled: default is 3.6 (for macOS and Windows only).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Hardware:&lt;/u&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- CPU: x86-64 Processor (Intel / AMD x64 Processors)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- RAM: 2GB&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Network: 100Mbps Wired Ethernet&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- HDD: Minimum 10GB free (20GB or more preferred)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Por tanto, un PC estándar es más que suficiente.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Configuración en Unifi Network&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Siga las &lt;a href="https://help.ui.com/hc/en-us/articles/360012282453-Self-Hosting-a-UniFi-Network-Server" target="_blank"&gt;instrucciones de instalación&lt;/a&gt;. Se recomienda el script de Glenn para Ubuntu:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Decargar script de glenn y seguir instrucciones de instalación:
wget -c https://get.glennr.nl/unifi/update/unifi-update.sh
chmod +x unifi-update.sh
sudo ./unifi-update.sh
# al final ejecutar:
sudo update-ca-certificates -f
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Si ya tiene configurado su Unifi Network y su Hotspot, vaya a la página de inicio de Hotspot, sección "Configuración (settings)"&amp;nbsp;y haga lo siguiente:&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMCUBFwY85KJtCLuXDRVU03FEmTDnvLclvsmLq8G_quhXVU8Liq4EicUJg29SkRCKeE1OMZ-2GndgXVKnnZ76pA-lsIo_SUxo_OSSsUGryXLMmnlx67f9TDhqmYSYoQPpa2kKZGZNNCuMnWpU2M2jDAIy1acU6TWdlvG1Ry1IyEngTFDg8IjQrxFdMEw2a/s1600/unifi-4.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="191" data-original-width="397" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMCUBFwY85KJtCLuXDRVU03FEmTDnvLclvsmLq8G_quhXVU8Liq4EicUJg29SkRCKeE1OMZ-2GndgXVKnnZ76pA-lsIo_SUxo_OSSsUGryXLMmnlx67f9TDhqmYSYoQPpa2kKZGZNNCuMnWpU2M2jDAIy1acU6TWdlvG1Ry1IyEngTFDg8IjQrxFdMEw2a/s1600/unifi-4.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Activar mensaje de Bienvenida (Success Message)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;- En "Página de inicio de éxito (Success Landing Page)", seleccione "Mensaje de éxito (Success Message)" en lugar de usar una URL de redirección (Custom URL). Esto es para permitirle a iptables la captura de la cadena de autenticación de los clientes. Sin embargo, si no quiere hacerlo, también puede poner una URL. De igual manera el script capturará el tráfico autenticado, solo que con la primera opción tiene un porcentaje de exito mayor del algoritmo usado en iptables.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Desactivar en APs la opción meshing (si están conectados por cable al switch), ya que puede causar conflictos en la adopción.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- En Restricciones post-autorización (Post-Authorization Restrictions) deberá revisar los rangos bloqueados, ya que eventualmente puede afectar la conexión de los clientes. Por defecto, nuestro script trabaja con 192.168.1.0/24, por lo tanto, si no tiene pensado cambiarlo, se sugiere eliminar el rango 192.168.0.0/16 de esta sección o bloquear los demás rangos de clase C, excluyendo 192.168.1.0/24 LAN y el rango WAN.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- En "Asignaciones de autorización previa (Pre-Authorization Allowances)", no se debe agregar la IP del hotspot, ya que si lo hace puede desencadenar conflictos.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Como tiene dos interfaces (WAN para el proveedor de internet y LAN para la red local) es necesario que edite el archivo system.properties y agregue la IP del servidor al final del archivo. Ejemplo:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;su
nano /var/lib/unifi/system.properties
system_ip=192.168.1.10
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y reinicie unifi:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo systemctl restart unifi
# o
sudo service unifi restart
&lt;/pre&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY-xwLvqojcvsA4SZBsBxSa93yv26Ca4LeMNDI0TozbpdLZG-HR9CSZ28e4LPn_G3vxdSMY-VIOf2Eq2odO2rkO6bxM6d315VJA7HLciTMGsgucNEKphmAStiTWaLB9TEofXdBmDOFz0czSpRXPNGSff-C2IOlYR4pQcGezrz4O46CzS16kxt_6o2_SgKc/s1600/unifi-networkip.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="406" data-original-width="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY-xwLvqojcvsA4SZBsBxSa93yv26Ca4LeMNDI0TozbpdLZG-HR9CSZ28e4LPn_G3vxdSMY-VIOf2Eq2odO2rkO6bxM6d315VJA7HLciTMGsgucNEKphmAStiTWaLB9TEofXdBmDOFz0czSpRXPNGSff-C2IOlYR4pQcGezrz4O46CzS16kxt_6o2_SgKc/s1600/unifi-networkip.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;
        &lt;span style="text-align: justify;"&gt;Más información&amp;nbsp;&lt;/span&gt;
        &lt;a href="https://help.ui.com/hc/en-us/articles/205202580-Explaining-the-UniFi-system-properties-File" style="text-align: justify;" target="_blank"&gt;AQUÍ&lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;A partir de ahora, la url de acceso al portal será:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;https://192.168.1.10:8843/guest/s/default/
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;Nota&lt;/b&gt;: No podrá iniciar por &lt;code&gt;http&lt;/code&gt; porque le saldrá en el navegador el siguiente mensaje:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;Bad Request
This combination of host and port requires TLS.
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Compartición de impresoras y carpetas&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Tambien en "Asignaciones de autorización previa (Pre-Authorization Allowances)", puede agregar las direcciones IPs de impresoras de red (solo si va a compartirlas con clientes de hotspot) y por último, poner un nombre de host, por ejemplo, de una carpeta compartida por Samba (solo si va a compartir carpetas con clientes de hotspot).&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Tenga en cuenta que si habilita un host para compartición de carpetas, también debe habilitar NetBIOS y puertos en smb.conf e iptables, lo cual no es muy seguro, por tanto, se sugiere acceder a carpetas compartidas por la IP del equipo donde se encuentre, en lugar del nombre del host.&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6WjP1dnInZnPLvx7W11Ut0p87WbnhKtqMJQno8w4tFpMPpA61qzLB0xBSFGQvXCTXhe-zC3esTPbsZWfkaB-c2PZh-1J2SRmhaLTf-Ol-aKQabgMJRA2gWbqh88vjc5Zov0nirg0Hq0ufTF-NQjlETgMct4KBDCUyQu9qBlfCRfPFRqVwd-sLQQFxe2lB/s1600/unifi-2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="419" data-original-width="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6WjP1dnInZnPLvx7W11Ut0p87WbnhKtqMJQno8w4tFpMPpA61qzLB0xBSFGQvXCTXhe-zC3esTPbsZWfkaB-c2PZh-1J2SRmhaLTf-Ol-aKQabgMJRA2gWbqh88vjc5Zov0nirg0Hq0ufTF-NQjlETgMct4KBDCUyQu9qBlfCRfPFRqVwd-sLQQFxe2lB/s1600/unifi-2.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Ejemplo: IP del switch 191.168.1.1 e impresoras 191.168.1.240/28&lt;br /&gt;&amp;nbsp;y se elimina 192.168.0.0/16 para evitar conflictos&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Adicionalmente, si va a compartir impresoras de red o carpetas compartidas de Samba con clientes de hotspot, vaya a la sección Wifi / Seleccionar Red Wifi (aplica a las configuraciones de los AP asociados al Hotspot) y desmarque la casilla "Aislamiento de dispositivo cliente (Client Device Isolation)". Para mayor información, consulte&amp;nbsp;&lt;a href="https://help.ui.com/hc/en-us/articles/115000166827-UniFi-Hotspot-Portal-and-Guest-WiFi" target="_blank"&gt;Security and Isolation&lt;/a&gt;.&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPSnlAXp59HMPBy8HI50YuGugyOtQRNjssaRG-ChUx-TICi0CDf2IzDciDLN-jcLKBi293vXA16oBVUlN4Edbw4KEqmYqsxM-XYtvE83wZQ5Obb9wF1AE-ONt04VBjUIHGqC_ceA_Dn_VGc6eNvKQn71zafdu4hrK5oqb4oyF7yqcXiOjZXWmMHWC3il9z/s1600/unifi-3.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="426" data-original-width="509" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPSnlAXp59HMPBy8HI50YuGugyOtQRNjssaRG-ChUx-TICi0CDf2IzDciDLN-jcLKBi293vXA16oBVUlN4Edbw4KEqmYqsxM-XYtvE83wZQ5Obb9wF1AE-ONt04VBjUIHGqC_ceA_Dn_VGc6eNvKQn71zafdu4hrK5oqb4oyF7yqcXiOjZXWmMHWC3il9z/s1600/unifi-3.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Marcar UAPSD, Desmarcar Multicast and Broadcast Control y Client Device Isolation&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;También se recomienda desmarcar la casilla "Control de multidifusión y transmisión (Multicast and Broadcast Control)" y marcar la casilla de verificación UAPSD. Por defecto vienen de esa manera.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Manos a la obra&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Lo siguiente es descargar el script de control:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Descargar script. Por defecto, este script trae una configuración, la cual deberá reemplazar por las suyas, antes de ejecutarlo, la cual se irá indicando abajo.&lt;/div&gt;
&lt;pre class="prettyprint"&gt;wget -c https://raw.githubusercontent.com/maravento/vault/master/scripts/bash/unifihotspot.sh
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;- Reemplace la variable MAC_LIST el path y archivo donde se guardarán las direcciones MAC de los clientes autenticados. Por defecto:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;MAC_LIST="/etc/acl/mac-hotspot.txt"
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;- Reemplace las variables LAN/WAN por el nombre real de la interfaz que va a usar para LAN de acuerdo con systemd/udev. Por defecto:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;## Defines variable for the LAN interface. To find out your network interfaces, run:
## ip -o link | awk '$2 != "lo:" {print $2, $(NF-2)}' | sed 's_: _ _'
wan=enp2s0
lan=enp2s1
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;- Reemplace la IP estática que le asignó a su servidor Linux. Por defecto:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;ipserver=192.168.1.2
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;- Reemplace el rango de direcciones IP que le asignará a los clientes que se autentican. Es importante que este rango coincida con el rango DHCP y con el CIDR de su red LAN. Por defecto:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;IP="192.168.1"
RANGE_INI=160
RANGE_END=200
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;- Modifique el "tiempo de expiración". Este valor es en segundos y debe coincidir con el tiempo asignado en los vouchers emitidos en el Hotspot de Unifi Network. Por defecto viene 3600 segundos (24 horas):&lt;/div&gt;
&lt;pre class="prettyprint"&gt;expiration_seconds=3600
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;- En este apartado debe modificar el script según sus necesidades. Debe eliminar o agregar puertos que necesite abrir o cerrar para los clientes del hotspot. Para eso debe determinar el tipo de tráfico que maneja. Por ejemplo, si va a usar Squid-Proxy, debe agregar el puerto del proxy (ej: 3128) y si es intercept, debe agregar el puerto transparente (ej: 8080); si usa la opción 252 de DHPC y tiene publicado un ".pac" en apache2/Nginx, debe agregar el puerto donde esté publicado el ".pac" (por defecto 8000). Si no tiene nada de lo anterior, simplemente agregue el puerto 443 donde se indica. Por defecto:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Local ports for authenticated client (Optional)
# Important about localports
# If you use Squid-Cache, you must add the proxy port (e.g. 3128)
# If you don't use proxy, If you don't use proxy, and your traffic is direct, add port 443
# If you use DHCP Option 252 and a published .pac file, you must add the apache2/Nginx port of the .pac
# Edit this variable and remove or add the ports to authorize. By default:
# RFC 2131 DHCP BOOTP protocol (67,68), NETBios (137:139), Microsoft-DS and SMB (445), SNMP (162), Open cups (printing service) udp/tcp for lan users IPP (631), Proxy PAC Apache2 (8000), Squid-Cache (3128), DNS (53) DNS over TLS (853)
# WARNING: Add HTTPS (443) port, in case of transparent proxy or non-proxy
localports="67,68,137:139,445,162,631,8000,3128,53,853"
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;- Una vez ajustados estos valores, copie el script a la ubicación de su preferencia, dele permisos de ejecución y ejecútelo:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo cp unifihotspot.sh /path_to/unifihotspot.sh
sudo chmod +x /path_to/unifihotspot.sh
sudo /path_to/unifihotspot.sh
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;- Se recomienda programarlo en el &lt;code&gt;cron&lt;/code&gt; para que se ejecute cada 5 minutos: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo crontab -e
*/5 * * * * /path_to/unifihotspot.sh
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y es todo.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;¿Qué hace este bash script?&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;El script abrirá los puertos de acceso al portal Unifi y capturará los strings de autenticación exitosa del cliente en el hotspot con voucher y envía su dirección MAC a la lista blanca "mac-hotspot.txt", no sin antes verificar si ya existe en otras listas blancas de su elección (si existe no se agrega) y también revisa si existe en una lista negra de su elección (si existe se elimina de esa lista). Y finalmente las reglas iptables incluidas le permitirán el acceso a la red local y por ende, a internet.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Una vez el tiempo asignado en el script, expire (insistimos, que debe coincidir con el tiempo del voucher asignado al cliente), se eliminará la MAC de la lista blanca.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Importante antes de usarlo&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Tenga en cuenta que el script usa el módulo string de iptables, el cual puede tener un impacto en el rendimiento si se aplica a un gran volumen de tráfico, ya que requiere inspección de contenido.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Sepa que Unifi tiene sus propias reglas iptables/ebtables, por tanto el mecanismo de asignación y expiración de los vouchers funcionará, sin importar las reglas de este script, así que debe haber una sincronización estricta del timestamp asignado en el voucher y en el script.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Es posible que se presenten algunos conflictos si tiene Unifi Network Self-Hosted (en el mismo servidor linux que hace de gateway). Para más información pulse &lt;a href="https://help.ui.com/hc/en-us/articles/220066768-Updating-and-Installing-Self-Hosted-UniFi-Network-Servers-Linux" target="_blank"&gt;AQUÍ&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Se recomienda agregar politicas de Iptables, tales como redireccionamiento NAT forwarding, Masquerade, Global Policies, entre otras reglas básicas de firewall no incluidas. Para mayor información consulte &lt;a href="https://www.maravento.com/2013/03/firewall.html" target="_blank"&gt;Firewall&lt;/a&gt;. Y si ya lo tiene y es "zero trust" o tiene reglas muy restrictivas, se recomienda revisar las configuraciones para que no afecte el funcionamiento. Por defecto, el script del hotspot viene con reglas tipo "Insert" (-I), lo que facilita que las reglas se procesen de primero, sin embargo puede ser necesario integrarlos.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Sugerimos configurar los APs manualmente, con la IP del servidor Linux en el campo del gateway y DNS, y el script se encarga de abrir DNS para permitir consultas. Esto para evitar conflictos con la configuración automática de los APs y que su DHCP asigne las IPs y DNS de su elección.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Unifi trabaja con muchos puertos, puede consultarlos &lt;a href="https://help.ui.com/hc/en-us/articles/218506997-UniFi-Network-Required-Ports-Reference" target="_blank"&gt;AQUÍ&lt;/a&gt; (no entendemos para que tantos) y eventualmente puede convertirse en un problema de seguridad.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Es probable que, en algunos es escenarios, tanto cuando ingrese con su voucher asignado por Unifi como cuando expire, o la primera vez que se conecte, no abra el Landing Page. Esto es un problema conocido, sin que a la fecha haya una solución (ver issues &lt;a href="https://community.ui.com/questions/Hotspot-Captive-Portal-not-showing/1648cf08-4c91-49c9-b809-7b080c72759a" target="_blank"&gt;AQUI &lt;/a&gt;y &lt;a href="https://community.ui.com/questions/Unifi-Network-Client-Devices-Page-Issue/aaf19b0d-ae3e-49b2-9347-1fe5abd1ee2e" target="_blank"&gt;AQUI&lt;/a&gt;). Una posible alternativa es cerrar el navegador, desconectarse de la red, esperar un minuto, volverse a conectar y abrir el navegador, pero esto no es garantía (esperar que unifi algún día arregle este problema).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Hay un script de glenn que usa &lt;a href="https://github.com/fail2ban/fail2ban" target="_blank"&gt;fail2ban&lt;/a&gt; para prevenir ataques de fuerza bruta a la aplicación Unifi Network, el cual bloqueará cualquier intento de acceso fallido superior a 3 por un período de 15 minutos. Para mayor información consulte &lt;a href="https://glennr.nl/s/unifi-fail2ban" target="_blank"&gt;AQUÍ&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Si tiene un proxy, permita el acceso de la URL: http://www.msftconnecttest.com/redirect&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;-Para eliminar unifi ejecute: &lt;code&gt;sudo dpkg -P unifi&lt;/code&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Disclaimer&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Este es un script experimental y depende de que muchos componentes que trabajen de manera sincronizada (dhcp, rsyslog, iptables, unifi network, etc.), por tanto, no se garantiza su correcto funcionamiento.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Imágenes cortesía de Ubiquiti Unifi&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Agradecimientos especiales a &lt;a href="https://glennr.nl/" target="_blank"&gt;Glennn&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Descarga: &lt;a href="https://github.com/maravento/vault/tree/master/scripts" target="_blank"&gt;Github Vault&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;ACTUALIZACIÓN IMPORTANTE&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;El contenido del post anterior y del script solo funciona en versiones de Unifi Software (Unifi Network Application, Unifi Network Server, Unifi Controller, etc.) 8x (probablemente hasta la v8.6.9). A raíz de la publicación de las versiones 9x, se han presentado fallas. Una posible causa un BUG documentado&amp;nbsp;&lt;a href="https://community.ui.com/questions/BUG-Cannot-invoke-String-getBytes-because-the-return-value-of-java-net-URL-getQuery-is-null/367b5d4e-d309-4fd6-aabd-de2c1d753397" target="_blank"&gt;AQUÍ&lt;/a&gt;, por tanto si su versión en 9x no se recomienda lo descrito anteriormente ni el uso de nuestro script (que actualmente está en revisión).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Este mensaje desaparecerá una vez concluyan las pruebas y se verifique su funcionamiento en 9x.&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/9095772691952152118" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/9095772691952152118" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2024/06/unifi-hotspot-con-iptables.html" rel="alternate" title="Unifi Hotspot con Iptables" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ZRXyOe-ZB7IvrhTDMVdPnVFz6xl56qcMvBNhIpGYedgsZ_cTrIAHWnuWHfJOdSzqXArIo5PeYOvyzPjiv3yIHcznyaS6fRENnBZyKEnrUIYplgq4GkgclHpjqbO3ZVZYGxR2Qqu2jHw7ySjafkPpkWCO2BhTtLe4JNUeu1vyaEANE7hOmujYo7tgdp3G/s72-c/unifi-1.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-735241169914134315</id><published>2024-05-01T13:12:00.004-04:00</published><updated>2024-08-14T12:38:12.161-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="drivers"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type="text">Driver RTL8812AU para Linux</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmZLJbx7vqYuY8RvhVV7x5adwDv03jy2prahVg6_hUI7r_e2xvnWu0L5c8KLM2dcprh_OgzviyMAKGj9jqFu99xn1n4giHnZOYFwwINHKyvFva0Pv4n4nPBKC0DG2mpbpv5igiLetF0MFdxfpzu0kJ4aiDkcGyKpnxtlI-4N2T7e3_r1uppt6sf9VMZ5cy/s953/RTL8812AU.png" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="772" data-original-width="953" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmZLJbx7vqYuY8RvhVV7x5adwDv03jy2prahVg6_hUI7r_e2xvnWu0L5c8KLM2dcprh_OgzviyMAKGj9jqFu99xn1n4giHnZOYFwwINHKyvFva0Pv4n4nPBKC0DG2mpbpv5igiLetF0MFdxfpzu0kJ4aiDkcGyKpnxtlI-4N2T7e3_r1uppt6sf9VMZ5cy/s320/RTL8812AU.png" width="320" /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;br /&gt;Hay muchas tarjetas de red wifi, en especial USB, que no traen soporte para Linux, por ejemplo:
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- ALFA AWUS036ACH&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- ALFA AWUS036AC&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- ALFA AWUS036EAC&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- ASUS USB-AC56 Dual-Band AC1200 Adapter (H/W ver. A1)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Belkin F9L1109&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Buffalo - WI-U3-866D&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Edimax EW-7822UAC&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Linksys WUSB6300 V1&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Netis WF2190&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Rosewill RNX-AC1200UBE&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Tenda U12&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- TP-Link Archer T4U V1&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- TRENDnet TEW-805UB&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Lo que tienen en común estas tarjetas es el chip Realtek RTL8812AU. Pero no todo está perdido para Linux; para eso tenemos el repositorio de &lt;a href="https://github.com/morrownr/8812au-20210820" target="_blank"&gt;morrownnr&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;No es necesario probar este driver en estas interfaces de red, puesto que el responsable del repositorio ya lo hizo, así que decidimos probarlos con la &lt;a href="https://www.amazon.com/-/es/gp/product/B08KHV7H1S/?&amp;amp;_encoding=UTF8&amp;amp;tag=maravento04-20&amp;amp;linkCode=ur2&amp;amp;linkId=c55a1faa648e8311aa6dc6d108524151&amp;amp;camp=1789&amp;amp;creative=9325" target="_blank"&gt;TP-Link USB WiFi Adapter, AC1300Mbps Dual Band 5dBi High Gain Antenna 2.4GHz/ 5GHz Wireless Network Adapter for Desktop PC (Archer T4U Plus)&lt;/a&gt;, que no está listada, pero comparte el mismo chipset Realtek RTL8812AU. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y manos a la obra (para Ubuntu 22.04. Puede consultar para otras distros en el repositorio): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt install -y build-essential dkms git iw
git clone https://github.com/morrownr/8812au-20210820.git
cd 8812au-20210820
sudo ./install-driver.sh
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;En este punto, comenzará la instalación:&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhctbdQ40jS-RcSF_b4bFnclhrLAPmha1fcFkgLoJxjteP6S4g3sW-1JoJYj0nlcUl05dl5QxWOnV55rd-PbcGhL0uCAREGMqLOBJnK_8Hg4wriC8uHdJ2I2mpwh14jpG6VTPi0rOqcgEL3jAV69BiXmQLwoD02UKheQbsqW-nxnhvuukjDguG0j-oKv8nt/s1600/RTL8812AU-1.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="435" data-original-width="720" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhctbdQ40jS-RcSF_b4bFnclhrLAPmha1fcFkgLoJxjteP6S4g3sW-1JoJYj0nlcUl05dl5QxWOnV55rd-PbcGhL0uCAREGMqLOBJnK_8Hg4wriC8uHdJ2I2mpwh14jpG6VTPi0rOqcgEL3jAV69BiXmQLwoD02UKheQbsqW-nxnhvuukjDguG0j-oKv8nt/s1600/RTL8812AU-1.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Instalación del driver&amp;nbsp;Realtek RTL8812AU&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Y al terminar le pedirá si desea aplicar la nueva configuración y al elegir "Y" reiniciará su PC.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Después de reiniciar, si no se activa su tarjeta, simplemente desconéctela y vuélvala a conectar. &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWY4nn9lxOU8dd16WUzLenv6Az2zDf48EGVz0MU-QUWPPgTKFjvb7lSeO6V4cftOt-jzwhOoalcLABaLzZdB4EyeT8nJV9j3RuyUNobX7yuG7BTrwu7Ty2rLid-2qRKGnuEY351oCrwReF5daeuY-qTH3-VlD9zqdjMfkZ0zUH96DBPafUEqUyI9VxYVab/s1600/RTL8812AU-2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="147" data-original-width="690" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWY4nn9lxOU8dd16WUzLenv6Az2zDf48EGVz0MU-QUWPPgTKFjvb7lSeO6V4cftOt-jzwhOoalcLABaLzZdB4EyeT8nJV9j3RuyUNobX7yuG7BTrwu7Ty2rLid-2qRKGnuEY351oCrwReF5daeuY-qTH3-VlD9zqdjMfkZ0zUH96DBPafUEqUyI9VxYVab/s1600/RTL8812AU-2.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Verificando que haya sido instalado correctamente&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Y es todo. Puede verificar que todo funciona correctamente.&lt;/div&gt;
&lt;pre class="prettyprint"&gt;lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.4 LTS
Release:	22.04
Codename:	jammy

sudo lsusb | grep T4UH
Bus 004 Device 004: ID 2357:010e TP-Link Archer T4UH v2 [Realtek RTL8812AU]

sudo lshw | grep network -A10 -B10
network
       descripción: Interfaz inalámbrica
       id físico: 7
       información del bus: usb@4:8
       nombre lógico: wlx5c628b2e68dc
       serie: 5c:62:8b:2e:XX:XX
       capacidades: ethernet physical wireless
       configuración: broadcast=yes driver=rtl8812au driverversion=v5.13.6-23-g232107d9b.20210820 firmware=52.14 ip=192.168.68.189 link=yes multicast=yes wireless=IEEE 802.11AC

sudo iwlist wlx5c628b2e68dc freq
wlx5c628b2e68dc  32 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 36 : 5.18 GHz
          Channel 40 : 5.2 GHz
          Channel 44 : 5.22 GHz
          Channel 48 : 5.24 GHz
          Channel 52 : 5.26 GHz
          Channel 56 : 5.28 GHz
          Channel 60 : 5.3 GHz
          Channel 64 : 5.32 GHz
          Channel 100 : 5.5 GHz
          Channel 104 : 5.52 GHz
          Channel 108 : 5.54 GHz
          Channel 112 : 5.56 GHz
          Channel 116 : 5.58 GHz
          Channel 120 : 5.6 GHz
          Channel 124 : 5.62 GHz
          Channel 128 : 5.64 GHz
          Channel 132 : 5.66 GHz
          Channel 136 : 5.68 GHz
          Channel 140 : 5.7 GHz
          Channel 149 : 5.745 GHz
          Channel 153 : 5.765 GHz
          Current Frequency:5.18 GHz (Channel 36)&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para mayor información, visite:&amp;nbsp; &lt;a href="https://github.com/morrownr/8812au-20210820"&gt;https://github.com/morrownr/8812au-20210820&lt;/a&gt;
&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/735241169914134315" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/735241169914134315" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2024/04/driver-rtl8812au-para-linux.html" rel="alternate" title="Driver RTL8812AU para Linux" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmZLJbx7vqYuY8RvhVV7x5adwDv03jy2prahVg6_hUI7r_e2xvnWu0L5c8KLM2dcprh_OgzviyMAKGj9jqFu99xn1n4giHnZOYFwwINHKyvFva0Pv4n4nPBKC0DG2mpbpv5igiLetF0MFdxfpzu0kJ4aiDkcGyKpnxtlI-4N2T7e3_r1uppt6sf9VMZ5cy/s72-c/RTL8812AU.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-7811060770442516913</id><published>2024-04-09T13:52:00.060-04:00</published><updated>2025-02-27T14:58:31.464-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="licencias cautivas"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type="text">Licencias cautivas</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHOrjtDsQw3_RU16rPn5iLWe9AqQhePBXPd2uIrowzVyQ7UlCfLI5Ma0Ul-eR7W9ApaQdQ7a90Cb1TNPOAbZvLeb5vqDu63DxkG2bCuVyNK0d8VZDhPZPuSR8jHVKbTfehHdrE6udh6EhLuLlhVr0yvHnUFHr40BkHiRFxvqbjkuGe6VBmdO-Yn_7wVMro/s800/Software-libre-o-privativo-mayor-seguridad-800x419.webp" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="419" data-original-width="800" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHOrjtDsQw3_RU16rPn5iLWe9AqQhePBXPd2uIrowzVyQ7UlCfLI5Ma0Ul-eR7W9ApaQdQ7a90Cb1TNPOAbZvLeb5vqDu63DxkG2bCuVyNK0d8VZDhPZPuSR8jHVKbTfehHdrE6udh6EhLuLlhVr0yvHnUFHr40BkHiRFxvqbjkuGe6VBmdO-Yn_7wVMro/s320/Software-libre-o-privativo-mayor-seguridad-800x419.webp" width="320" /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;br /&gt;Una licencia de software es un contrato entre el licenciante (autor/titular de los derechos de explotación/distribución) y el licenciatario (usuario consumidor, profesional o empresa) del programa informático, para utilizarlo cumpliendo una serie de términos y condiciones establecidas dentro de sus cláusulas, es decir, es un conjunto de permisos que un desarrollador le puede otorgar a un usuario en los que tiene la posibilidad de distribuir, usar o modificar el producto bajo una licencia determinada. Además, se suelen definir los plazos de duración, el territorio donde se aplica la licencia (ya que la licencia se soporta en las leyes particulares de cada país o región), entre otros (fuente: &lt;a href="https://es.wikipedia.org/wiki/Licencia_de_software" target="_blank"&gt;Wikipedia&lt;/a&gt;).
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Por lo general, las licencias se clasifican en dos. "Según los derechos que cada autor se reserva sobre su obra" y "Según su destinatario". &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En el primer bloque nos encontramos las Licencia de software de código abierto permisivas, tales como Academic Free License, Apache Software License, Artistic License, Attribution Assurance license, BSD License, MIT License, etc. Las licencias de software de código abierto robustas o robustas fuertes, tales como Common Public License, GNU General Public License, Eclipse Public License, etc. Y las robustas débiles, tales como GNU Lesser General Public License v.2.1., Mozilla Public License, Open Source License, Apple Source License, etc. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En el segundo bloque "Según su destinatario" podemos encontrar la licencia de usuario final y de distribuidores. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y también están las licencias de software de código cerrado, incluidas en el primer bloque. Estas licencias suelen utilizarse para software comercial y están diseñadas para proteger los derechos de propiedad intelectual del creador. Las licencias privativas vienen con una serie de condiciones, como limitar el número de usuarios que pueden utilizar el software, prohibir al usuario modificar el código fuente del software y limitar la capacidad del usuario para transferir la licencia a otra persona u organización. Y como si no fuese suficiente tantas restricciones, hay un escenario aún peor, que puede convertirse en una auténtica pesadilla para el usuario (comprador). Y este es el caso que abordaremos hoy.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Los fabricantes de programas sometidos a este tipo de licencias cerradas por lo general ofrecen servicios de soporte técnico y actualizaciones durante el tiempo de vida del producto. Pero, como bien afirman Malcolm Bain, Manuel Gallego, Manuel Martínez Ribas y Judit Rius en su Paper “&lt;a href="https://openaccess.uoc.edu/bitstream/10609/229/6/Aspectos%20legales%20y%20de%20explotaci%C3%B3n%20del%20software%20libre_M%C3%B3dulo5_Las%20licencias%20de%20software%20%28II%29.pdf" target="_blank"&gt;Las licencias de software (II)&lt;/a&gt;”: &lt;i&gt;Puede ser que, aun siendo formalmente un contrato accesorio a la licencia de uso, el mantenimiento constituya a veces mayor negocio para el proveedor que el precio que obtiene por la licencia. Como el único que puede prestar dicho servicio es el proveedor, se dice que el contrato de mantenimiento permite al proveedor mantener cautivo al usuario. El proveedor puede incluso optar por cobrar al usuario un precio relativamente bajo por la licencia, a cambio de asegurarse el pago de una cuota de mantenimiento durante un largo tiempo&lt;/i&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Dicho de otro modo; hay escenarios en que el fabricante del programa es, a la vez, proveedor de la licencia, de actualizaciones y del soporte técnico, sin posibilidad de tercerización, lo que le permite mantener cautivo al usuario.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Software con Licencia Cautiva&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;div&gt;Resumiento; un Software con Licencia Cautiva es aquel que cumple con los siguientes criterios:&lt;/div&gt;
  &lt;div&gt;- Es un software de código cerrado (privado).&lt;/div&gt;
  &lt;div&gt;- El fabricante o desarrollador es el único responsable de las actualizaciones.&lt;/div&gt;
  &lt;div&gt;- La licencia y la venta del software están controladas por la misma entidad que lo desarrolla.&lt;/div&gt;
  &lt;div&gt;- El soporte técnico es proporcionado exclusivamente por el fabricante, sin intermediarios.&lt;/div&gt;
  &lt;div&gt;Además, se le añaden las siguientes condiciones:&lt;/div&gt;
  &lt;div&gt;- El fabricante puede suspender o revocar el acceso del usuario al software en cualquier momento y por cualquier motivo.&lt;/div&gt;
  &lt;div&gt;- El usuario cede al fabricante la propiedad de sus datos o el derecho a utilizarlos.&lt;/div&gt;
  &lt;div&gt;Este modelo es altamente perjudicial para el usuario, ya que lo deja completamente dependiente del proveedor para cualquier necesidad relacionada con el software. La imposibilidad de recurrir a terceros para soporte técnico o actualizaciones limita su flexibilidad y autonomía. Además, las restricciones habituales de estas licencias que prohíben modificar, desensamblar, copiar o redistribuir el software fuera de lo estipulado agravan aún más la dependencia, afectando la escalabilidad y comprometiendo la confidencialidad, integridad y disponibilidad de los datos que maneja el usuario.&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Por tanto, si no puede utilizar licencias de software libre y de código abierto&amp;nbsp;(Free/Libre and Open Source Software FLOSS) y no tiene más alternativas que adquirir una licencia de software cerrado para cubrir sus necesidades específicas, evite a toda costa este tipo de software con esta licencia tan restrictiva, si no estará a merced de su proveedor. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Fuentes consultadas:&amp;nbsp; &lt;a href="https://openaccess.uoc.edu/bitstream/10609/229/6/Aspectos%20legales%20y%20de%20explotaci%C3%B3n%20del%20software%20libre_M%C3%B3dulo5_Las%20licencias%20de%20software%20%28II%29.pdf" target="_blank"&gt;Las licencias de software (II)&lt;/a&gt;, &lt;a href="https://es.wikipedia.org/wiki/Licencia_de_software#:~:text=EUPL.-,Licencia%20de%20software%20de%20c%C3%B3digo%20cerrado,-%5Beditar%5D" target="_blank"&gt;Licencias de software de código cerrado&lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Imagen cortesía de &lt;a href="https://www.softzone.es/noticias/programas/software-libre-privativo-seguridad/"&gt;softzone.es&lt;/a&gt;
&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/7811060770442516913" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/7811060770442516913" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2024/04/licencias-cautivas.html" rel="alternate" title="Licencias cautivas" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHOrjtDsQw3_RU16rPn5iLWe9AqQhePBXPd2uIrowzVyQ7UlCfLI5Ma0Ul-eR7W9ApaQdQ7a90Cb1TNPOAbZvLeb5vqDu63DxkG2bCuVyNK0d8VZDhPZPuSR8jHVKbTfehHdrE6udh6EhLuLlhVr0yvHnUFHr40BkHiRFxvqbjkuGe6VBmdO-Yn_7wVMro/s72-c/Software-libre-o-privativo-mayor-seguridad-800x419.webp" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-2977994221951823957</id><published>2024-02-12T09:57:00.035-05:00</published><updated>2025-03-28T10:16:19.919-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HowTO"/><category scheme="http://www.blogger.com/atom/ns#" term="mantenimiento"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type="text">Error OOBE</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimrANLgspxEsW83uk5b8QhUdsz_i-0s-9F-d_-8_tMJve3UjspmhoXGCGb0hCYGWROeVRQrRI8troDkUHV9cyAMZlAPT-RLjmhmbGill54QsEA-A7fSEeE2nPKzC_cWmYYjTiG_0h9c3XCJL3jeCpRWYm1GYGvInrQyfsY2-FnUZ1sGMzBzCblCsmoQwLT/s806/oobe.jpeg" style="margin-left: 1em; margin-right: 1em;"&gt;
    &lt;img border="0" data-original-height="576" data-original-width="806" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimrANLgspxEsW83uk5b8QhUdsz_i-0s-9F-d_-8_tMJve3UjspmhoXGCGb0hCYGWROeVRQrRI8troDkUHV9cyAMZlAPT-RLjmhmbGill54QsEA-A7fSEeE2nPKzC_cWmYYjTiG_0h9c3XCJL3jeCpRWYm1GYGvInrQyfsY2-FnUZ1sGMzBzCblCsmoQwLT/s320/oobe.jpeg" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Los errores en Windows 10/11 de tipo &lt;code&gt;OOBE&lt;/code&gt; (OOBEKEYBOARD, OOBESETTINGS, OOBEREGION, etc.) por lo general ocurren en equipos antiguos o con limitaciones de recursos de hardware, ya que el SO no es capaz de cargar los valores personalizados, elegidos por el usuario al momento de la instalación; tales como teclado, región y demás valores de configuración. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;La mayoría de sitios en internet recomiendan que abra CMD en la pantalla del error, pulsando la combinación de teclas Shift+F10 (Shift+Fn+F10 en laptops) y ejecute los siguientes comandos:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;net user administrador /active:yes
cd %windir%/system32/oobe
msoobe.exe
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Con esto lo que se busca es acceder a la cuenta de administrador y desde ahí reparar el daño o crear la cuenta. Tenga presente que si después de ejecutar los comandos, el PC no reinicia en 20 minutos, deberá realizar un apagado forzado y volver a iniciar.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En algunos casos, después de reiniciar, puede aparecerle el mensaje "Nombre de usuario o contraseña no válido". Ignora este mensaje y haz clic en "Aceptar".&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;También puede crear la cuenta de usuario directamente desde el CMD (reemplace &lt;code&gt;username&lt;/code&gt;
  &lt;code&gt;password&lt;/code&gt; por el nombre de usuario y contraseña de la cuenta de usuario que va a crear):
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;net user administrator /active:yes
net user /add username password
net localgroup administrators username /add
cd %windir%/system32/oobe
msoobe.exe
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y si después de este procedimiento y de reiniciar le siguen saliendo mensajes similares, tales como: &lt;code&gt;OOBESETTINGS&lt;/code&gt;, &lt;code&gt;OOBEREGION&lt;/code&gt; o cualquier otro de tipo OOBE, conserve la cuenta de administrador y trabaje en esta, si es que su sistema se lo permite. Y solo después de mejorar el hardware de su PC, desactívela y trabaje en su nueva cuenta de usuario: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;net user administrador /active:no
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Es posible que quede una cuenta temporal llamada &lt;code&gt;default0&lt;/code&gt; o similar. Para eliminarla puede hacerlo en el panel de control, cuentas de usuario o ejecutando con privilegios: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;net user defaultuser0 /DELETE
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Sin embargo, y sin demeritar estas recomendaciones, la nuestra es que no se complique y lo haga a la vieja usanza, o sea, terminar la instalación del SO en otro PC de mejores características y al llegar al escritorio, sacarlo y ponerlo en el PC del problema.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero antes de hacerlo, debe tener en cuenta lo siguiente:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- El cambio de disco de PC debe hacerse cuando salga el error OOBE, para terminar de configurar la cuenta. Y una vez en el escritorio, volver a hacer el cambio.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Asegúrese que la configuración BIOS Legacy o UEFI y ASCII o IDE sea la misma en ambos equipos.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- No se conecte a internet durante el proceso de formateo y/o configuración de la cuenta.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y si no le funciona nada de lo anterior, conecte el HDD/SSD a un PC con mejores caracteristicas. Al llegar al escritorio, configurelo a su gusto y luego desinstale el hardware específico, &lt;a href="https://www.maravento.com/2016/03/script-slmgr.html" target="_blank"&gt;desactive licencias&lt;/a&gt;&amp;nbsp;y use &lt;a href="https://www.maravento.com/2020/01/automatizando-sysprep.html" target="_blank"&gt;Sysprep&lt;/a&gt;&amp;nbsp;y al terminar, reinicie, le pedirá crear una nueva cuenta (es temporal así que pongale cualquier nombre), y al llegar nuevamente al escritorio, apague el equipo, cambie el HDD/SSD a la máquina original, la inicia y le solicitará ingresar a una de las dos cuentas, ingrese a la cuenta original que configuró previamente, y al llegar al escritorio, elimine la cuenta temporal.&lt;/div&gt;
&lt;br /&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/2977994221951823957" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/2977994221951823957" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2024/02/error-oobe.html" rel="alternate" title="Error OOBE" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimrANLgspxEsW83uk5b8QhUdsz_i-0s-9F-d_-8_tMJve3UjspmhoXGCGb0hCYGWROeVRQrRI8troDkUHV9cyAMZlAPT-RLjmhmbGill54QsEA-A7fSEeE2nPKzC_cWmYYjTiG_0h9c3XCJL3jeCpRWYm1GYGvInrQyfsY2-FnUZ1sGMzBzCblCsmoQwLT/s72-c/oobe.jpeg" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-6059764134257360532</id><published>2023-09-22T19:34:00.277-04:00</published><updated>2023-10-15T22:27:14.674-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="sync"/><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><title type="text">2-Way Sync con Rclone</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;a href="https://rclone.org/commands/rclone_sync/" target="_blank"&gt;&lt;/a&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://rclone.org/commands/rclone_sync/" target="_blank"&gt;&lt;/a&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg80iG8tP5bVo5-V7ZznMCgaIuBvRT5UgVCyBDF5SHc6z-66X9OC7FRatHztAVDjDK4EaJ0XUloJhQ8HJsYdnSMctyzJmKhtfxzW6LI7TqL5ssnfkvR6tHoAy0-t-wUXua00cqrW8nL3l7UJvFhSJ3dpEhwNbLxMGKnkQRu5lLKHoyfWMVVenmQeZo7fWUY/s2064/one-way-sync-vs-two-way-sync.png" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="1000" data-original-width="2064" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg80iG8tP5bVo5-V7ZznMCgaIuBvRT5UgVCyBDF5SHc6z-66X9OC7FRatHztAVDjDK4EaJ0XUloJhQ8HJsYdnSMctyzJmKhtfxzW6LI7TqL5ssnfkvR6tHoAy0-t-wUXua00cqrW8nL3l7UJvFhSJ3dpEhwNbLxMGKnkQRu5lLKHoyfWMVVenmQeZo7fWUY/s320/one-way-sync-vs-two-way-sync.png" width="320" /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;br /&gt;Hacer una sincronización bidireccional de datos (2-Way Sync), requiere un alto grado de complejidad del algoritmo, ya que debe determinar el estado actual de los archivos, incluso en algunos casos el estado anterior, verificar los tiempos de modificación, el timestamp, etc., etc.&amp;nbsp;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Muchos clientes de los diferentes servicios en la nube hacen este tipo de sincronización, pero,&amp;nbsp;en Linux, son limitados respecto a su versión de Windows, o ni siquiera existen, y ni hablar de distribuciones sin escritorio. Una pesadilla. Y este problema se puede agravar, si requerimos de varios clientes para manejar múltiples servicios en la nube gratis, por las limitaciones de capacidad que tiene cada uno.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Afortunadamente, contamos con&amp;nbsp;&lt;a href="https://rclone.org/commands/rclone_sync/" target="_blank"&gt;Rclone&lt;/a&gt;, una de esas herramientas de antaño que siempre salvan la campana, sobre todo en Linux, y con la cual podemos lograr nuestro 2-Way Sync de los principales servicios en la nube, ahorrándonos la instalación de un montón de clientes. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para esto, Rclone cuenta con&amp;nbsp; &lt;a href="https://rclone.org/bisync/" target="_blank"&gt;bisync&lt;/a&gt;&amp;nbsp;(ejecute &lt;code&gt;rclone bisync --help&lt;/code&gt;) y también están las alternativas&amp;nbsp;&lt;a href="https://github.com/Jwink3101/syncrclone" target="_blank"&gt;syncrclone&lt;/a&gt;&amp;nbsp;o&amp;nbsp;&lt;a href="https://github.com/cjnaz/rclonesync-V2" target="_blank"&gt;rclonesync-V2&lt;/a&gt;, pero son experimentales y presentan errores, lentitud, problemas de resincronización y al final puede que no obtengamos los resultados esperados, con una eventual pérdida de datos (puede encontrar una comparativa&amp;nbsp;&lt;a href="https://forum.rclone.org/t/syncrclone-vs-bisync-and-rclonesync-v2/29793#syncrclone-vs-bisync-and-rclonesync-v2-1" target="_blank"&gt;AQUÍ&lt;/a&gt;). Y otras, simplemente están obsoletas, descontinuadas o su desarrollo se ha detenido, como es el caso de&amp;nbsp;&lt;a href="https://github.com/mmozeiko/RcloneBrowser" target="_blank"&gt;RcloneBrowser,&lt;/a&gt;&amp;nbsp;&lt;a href="https://github.com/dimitrov-adrian/RcloneTray" target="_blank"&gt;RcloneTray&lt;/a&gt;,&amp;nbsp;etc. (consulte&amp;nbsp;&lt;a href="https://github.com/rclone/rclone/wiki/Third-Party-Integrations-with-rclone" target="_blank"&gt;Third-Party&lt;/a&gt;). &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Un poco de sentido común&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Asumiendo que ya tenemos&amp;nbsp;&lt;a href="https://rclone.org/install/" target="_blank"&gt;instalado&lt;/a&gt; y &lt;a href="https://rclone.org/docs/" target="_blank"&gt;configurado&lt;/a&gt;&amp;nbsp;Rclone: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;# To install
sudo -v ; curl https://rclone.org/install.sh | sudo bash
# To self update
rclone selfupdate
# To config
rclone config
# To remove
local_user=$(who | head -1 | awk '{print $1;}')
sudo rm -rf /home/$local_user/.cache/rclone /home/$local_user/.config/rclone /usr/bin/rclone /usr/local/share/man/man1/rclone*
&lt;/pre&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDONQ2UuynUsZbLRnr7E0fHfn4Fh5WNRDVj-aTlVnWF_ftrn6pIq8jXB0NoWHjReMhrk-ySOe7XXmE2VCejquWVpL9Dgm9hoUelRVH5FPqEUnP7f87i3gm3GLwiqcgUbRHiR2B7XVKA8BvI_G-IbNyZ1g2qgBLtkQTg0rv7Ey43eQLaOWMX8tboOnsgDqw/s1600/remote_gdrive.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="255" data-original-width="305" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDONQ2UuynUsZbLRnr7E0fHfn4Fh5WNRDVj-aTlVnWF_ftrn6pIq8jXB0NoWHjReMhrk-ySOe7XXmE2VCejquWVpL9Dgm9hoUelRVH5FPqEUnP7f87i3gm3GLwiqcgUbRHiR2B7XVKA8BvI_G-IbNyZ1g2qgBLtkQTg0rv7Ey43eQLaOWMX8tboOnsgDqw/s1600/remote_gdrive.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Remoto Google Drive&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;A continuación usaremos, a modo de ejemplo, Google Drive (puede ser cualquier otro), por tanto, dentro de la carpeta de Google Drive (que llamaremos igual que el servicio "gdrive") creamos una carpeta llamada "upload" (donde pondremos los archivos a subir al servicio en la nube) y otra llamada "download" (donde están guardados los archivos del servicio en la nube que queremos sincronizar con nuestro PC local); algo similar a lo que hacen algunos servicios en la nube, como Mega, etc.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y ahora creamos un bash con el siguiente contenido, le damos permisos y lo ejecutamos: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash

# Rclone 2-Way Sync

# Local user with sudo privileges (no root)
local_user=$(who | head -1 | awk '{print $1;}')

# Local path for upload
upload_local="/home/$local_user/gdrive/upload"

# Local path for download
download_local="/home/$local_user/gdrive/download"

# Name of your remote in Rclone for Google Drive
remote="gdrive"

# Rclone log
rclonelog="/home/$local_user/gdrive/rclone.log"

echo "Sync gdrive to local"
# ej. download: rclone sync [directorio_remoto] [directorio_local]
rclone sync $remote:download $download_local --verbose --update --no-update-modtime --modify-window 1h --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s --stats-file-name-length 0 --log-file=$rclonelog
echo OK

echo "Sync local to gdrive"
# ej. upload: rclone sync [directorio_local] [directorio_remoto]
rclone sync $upload_local $remote:upload --verbose --update --modify-window 1h --no-update-modtime --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s --stats-file-name-length 0 --log-file=$rclonelog
echo Done
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;En el script anterior, se usaron los siguientes flags: &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;code&gt;sync&lt;/code&gt;: Sincroniza el origen con el destino, cambiando solo el destino. No transfiere archivos que sean idénticos en origen y destino, probando por tamaño y tiempo de modificación o MD5SUM. El destino se actualiza para que coincida con el origen, incluida la eliminación de archivos si es necesario (excepto objetos duplicados). Si no desea eliminar archivos del destino, utilice el comando &lt;code&gt;copy&lt;/code&gt; en su lugar.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--modify-window 1h&lt;/code&gt;: Se usa para determinar si un archivo debe actualizarse en el destino en función de las diferencias en los timestamps de modificación. Si la diferencia entre los timestamps de modificación de un archivo en el origen y el destino está dentro de la ventana de tiempo especificada, se considera que los timestamps son iguales y no se actualizará el archivo. El valor "1h" significa que se permitirá una diferencia de hasta 1 hora en los timestamps de modificación antes de que se actualice un archivo en el destino. Básicamente, sirve para compensar los desfases de tiempo entre la fuente y el backend, para backends que no admiten tiempos de modificación y, en su lugar, usan tiempos de carga. Este parámetro es opcional y normalmente se usa con &lt;code&gt;--update&lt;/code&gt;, y el tiempo puede ser ajustado a los requerimientos del usuario. Ejemplo "1m" (un minuto).
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--update&lt;/code&gt;: Esta opción asegura que solo se copien archivos si el archivo en el origen es más nuevo que el archivo existente en el destino. Esto evita copiar archivos que ya existen y no han cambiado.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--verbose&lt;/code&gt;: Habilita la salida detallada en la terminal para que puedas ver información sobre los archivos que se copian.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--transfers 30&lt;/code&gt;: Esto establece el número máximo de transferencias concurrentes a 30. Significa que Rclone puede copiar hasta 30 archivos al mismo tiempo, lo que puede acelerar el proceso de copia.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--checkers 8&lt;/code&gt;: Esto establece el número máximo de comprobadores concurrentes a 8. Los comprobadores verifican si los archivos ya existen en el destino y evitan copiarlos innecesariamente.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--contimeout 60s&lt;/code&gt;: Establece el tiempo de espera para las conexiones a 60 segundos. Si una conexión no se establece en ese tiempo, se considera un error.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--timeout 300s&lt;/code&gt;: Establece el tiempo de espera global para la operación de copia a 300 segundos. Si la operación no se completa en ese tiempo, se considera un error.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--retries 3&lt;/code&gt;: Indica que se deben realizar hasta 3 intentos de copia en caso de fallo antes de considerar la operación como fallida.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--low-level-retries 10&lt;/code&gt;: Establece el número máximo de intentos de bajo nivel a 10. Esto se refiere a los intentos de nivel más bajo para solucionar problemas de red u otros problemas.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--stats 1s&lt;/code&gt;: Muestra estadísticas cada 1 segundo mientras se ejecuta la operación de copia.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--stats-file-name-length 0&lt;/code&gt;: Esto establece la longitud máxima del nombre de archivo en las estadísticas a 0, lo que significa que se mostrarán nombres de archivo completos en las estadísticas.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--no-update-modtime&lt;/code&gt;: Evita que Rclone actualice las marcas de tiempo de modificación de los archivos en el destino durante una operación de sincronización o copia.
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;--log-file=&lt;/code&gt;: Especifica el archivo de log personalizado, donde se guardará la salida. También puede enviar los registros al log de Linux con la opción &lt;code&gt;--syslog&lt;/code&gt;. También puede omitir el log y usar &lt;code&gt;--progress&lt;/code&gt; para ver el progreso de la sincronización en tiempo real.
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En algunos casos, se recomienda crear una lista para excluir o incluir archivos y directorios. Por ejemplo, a continuación una lista de exclusión de archivos problemáticos (exclude.txt):&lt;/div&gt;
&lt;pre class="prettyprint"&gt;*encryptable*
*.fuse_hidden*
*Zone.Identifier*
*goutputstream*
*.spotlight-*
*.fseventsd*
*.ds_store*
*~lock.*
*Thumbs.db*
*attributes*
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y agregar al comando propuesto en el script el siguiente flag:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# Exclude list
filter="/home/$local_user/gdrive/exclude.txt"
--exclude-from $filter --ignore-case
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: Tenga en cuenta que esto eliminará cualquier archivo que contenga estos patrones en mayúscula o minúscula, por tanto, pruebe primero agregando al final del comando el flag &lt;code&gt;--dry-run&lt;/code&gt;, así verá los cambios que hará Rclone sin modificar nada (consulte&amp;nbsp;&lt;a href="https://rclone.org/filtering/" target="_blank"&gt;filtering&lt;/a&gt;). O, si no quiere arriesgarse, más bien haga esta limpieza después que concluya el proceso de sincronización con un bash script (consulte &lt;a href="https://www.maravento.com/2013/09/find-and-destroy.html" target="_blank"&gt;Find and Destroy&lt;/a&gt;).
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Con estas opciones se sincronizan archivos entre el remoto especificado (Google Drive) y una ubicación local, con varias opciones para controlar la operación de copia, incluyendo límites de velocidad, tiempo de espera y estadísticas detalladas, que finalmente se envían a un log, para su posterior revisión y control de cambios. Puede hacer esto mismo con cualquier otro servicio en la nube, siempre y cuando sea aceptado por Rclone.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;No es necesario ejecutar este script con privilegios. Prográmelo en el crontab del usuario, para que se ejecute las veces que considere, sin embargo, no abuse de la API de algunos servicios en la nube, ya que no todos admiten sincronización en tiempo real y tampoco 2FA (Time-based One-time Password TOTP), como &lt;a href="https://mega.nz/" target="_blank"&gt;mega&lt;/a&gt; (issue&amp;nbsp;&lt;a href="https://github.com/rclone/rclone/issues/3165" target="_blank"&gt;3165&lt;/a&gt;,&amp;nbsp;aunque ya hay &lt;a href="https://github.com/rclone/rclone/pull/6868" target="_blank"&gt;un borrador&lt;/a&gt;&amp;nbsp;para su implementación). Para mayor información, consulte la &lt;a href="https://rclone.org/commands/rclone_sync/" target="_blank"&gt;documentación oficial&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Lo malo&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Lo ideal sería un log que mostrara los registros de archivos y carpetas (creación, modificación, eliminación, etc) y de alertas o errores. Desafortunadamente, esto no sucede en Rclone.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Los logs se especifican con &lt;code&gt;--log-level&lt;/code&gt; y solo &lt;a href="https://rclone.org/docs/#:~:text=%2Ctime%22.-,%2D%2Dlog%2Dlevel%20LEVEL,-This%20sets%20the" target="_blank"&gt;tiene 4 opciones&lt;/a&gt;: NOTICE, ERROR, INFO y DEBUG. Con el flag "-q", Rclone solo mostrará errores (si los hay). Con el flag "-v" Rclone mostrará NOTICE, ERROR, INFO (los dos primeros no hay casi información e INFO es limitado, e incluye bastante basura de la caché) y finalmente, si usamos la bandera flag "--vv" tendremos los 4 juntos, que incluirá la salida deseada, pero acompañada de toneladas de basura de proporciones bíblicas, llenando el log en cuestión de minutos.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;pre class="prettyprint"&gt;2023/10/08 21:05:11 INFO  : vfs cache: cleaned: objects 2 (was 2) in use 0, to upload 0, uploading 0, total size 1.210Ki (was 1.210Ki)
2023/10/08 21:06:08 INFO  : vfs cache: cleaned: objects 1 (was 1) in use 0, to upload 0, uploading 0, total size 0 (was 0)
2023/10/08 21:06:11 INFO  : vfs cache: cleaned: objects 2 (was 2) in use 0, to upload 0, uploading 0, total size 1.210Ki (was 1.210Ki)
2023/10/08 21:07:08 INFO  : vfs cache: cleaned: objects 1 (was 1) in use 0, to upload 0, uploading 0, total size 0 (was 0)
2023/10/08 21:07:11 INFO  : vfs cache: cleaned: objects 2 (was 2) in use 0, to upload 0, uploading 0, total size 1.210Ki (was 1.210Ki)
2023/10/08 21:08:08 INFO  : vfs cache: cleaned: objects 1 (was 1) in use 0, to upload 0, uploading 0, total size 0 (was 0)
2023/10/08 21:08:11 INFO  : vfs cache: cleaned: objects 2 (was 2) in use 0, to upload 0, uploading 0, total size 1.210Ki (was 1.210Ki)
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Así que no recomendamos usar &lt;code&gt;syslog&lt;/code&gt;, en modo DEBUG y reemplazarlo por un log personalizado, que se pueda vaciar cada X tiempo con un &lt;code&gt;cat /dev/null &amp;gt; rclone.log&lt;/code&gt;, o filtrarlo con grep u otra cosa, o, en el peor de los casos, no usar log, pero no es lo recomendable.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Conclusión&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Entendemos que esta solución está lejos del ideal GUI que querríamos para sincronizar nuestros archivos locales y en la nube, pero, desafortunadamente, alternativas&amp;nbsp;&lt;a href="https://es.wikipedia.org/wiki/Software_libre_y_de_c%C3%B3digo_abierto" target="_blank"&gt;FOSS&lt;/a&gt;&amp;nbsp;que hagan 2-Way Sync con diferentes servicios en la nube son difíciles de conseguir (por no decir imposibles) y&amp;nbsp;&lt;a href="https://freefilesync.org/" target="_blank"&gt;FreeFileSync&lt;/a&gt;, que es a nuestro juicio es la mejor herramienta de su tipo, de momento, solo cuenta con sincronización local y Google Drive, y&amp;nbsp;&lt;a href="https://syncthing.net/" target="_blank"&gt;syncthing&lt;/a&gt;&amp;nbsp;(con su cliente&amp;nbsp;&lt;a href="https://github.com/canton7/SyncTrayzor/releases/tag/v1.1.29" target="_blank"&gt;SyncTrayzor&lt;/a&gt;), otro buen candidato, no cuenta con sincronización en la nube, ya que solo está pensado para sincronizar datos entre PC vía p2p... y para qué seguir mencionando. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Workaround&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y si no se puede por la vía normal, siempre habrá una manera de hacerlo. Creamos un bash para &lt;a href="https://ucr-research-computing.github.io/Knowledge_Base/how_to_mount_google_drive.html" target="_blank"&gt;montar las unidades en la nube al inicio del sistema&lt;/a&gt; (o &lt;a href="https://forum.rclone.org/t/anyone-have-an-idiots-guide-to-writing-a-script-to-mount-drives-on-boot/842/2" target="_blank"&gt;creando un servicio&lt;/a&gt;&amp;nbsp;o en &lt;a href="https://rclone.org/commands/rclone_mount/" target="_blank"&gt;fstab&lt;/a&gt;). Ejemplo: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;crontab -e
@reboot rclone mount gdrive: $HOME/gdrive &amp;amp;
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: Algunos servicios exigen la caché activada. Por defecto, viene desactivada (off). El modo "writes" es para que los archivos se lean directamente desde el remoto y "full" para que los archivos abiertos se almacenen en caché. Ejemplo:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;@reboot rclone mount pcloud: $HOME/pcloud --vfs-cache-mode writes &amp;amp;
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;También puede parametrizar el tamaño de la caché, el vaciado, etc. (consulte&amp;nbsp; &lt;a href="https://rclone.org/commands/rclone_mount/#vfs-file-caching" target="_blank"&gt;vfs-file-caching&lt;/a&gt;)&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Importante&lt;/u&gt;: Es muy probable que si programa el comando anterior en crontab y no tiene internet al iniciar su PC, la carga del escritorio de su sistema operativo se ralentizará, ya que intenta hacer la operación y no puede completarla. En ese caso, se recomienda correr el comando en un bash script, que verifique primero si hay internet, y si hay, verifique si existe el servicio y la carpeta de montaje. Y si estas 3 condiciones se dan, entonces proceda con el montaje, caso contrario aborte y programar este script en crontab, cada X tiempo.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Nota&lt;/u&gt;: Para automatizar los procesos de montaje | desmontaje de servicios y two-way sync, puede consultar los bash scripts de Rclone en nuestro repositorio &lt;a href="https://github.com/maravento/vault" target="_blank"&gt;Vault&lt;/a&gt;.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y luego, con FreeFileSync, creamos otro bash y lo programamos en crontab para que sincronice el directorio local elegido con la unidad montada de la nube.&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibOD3TDSl32UInN-y53T38X1rbH8DvOgO0MoXcOY7H1eHj3qxFoFFd6YFSe6vXflQ8TlbfuIxG2aDbtt6kselzpsjvSV-3gYmZSX4PzMMxmJITiaBFnS5pXSmXDfUVM0eIEm8mXq4aCQj7MBlufqgqICpvXrYWrNcnUKibICOeNHEMq_DLuS3vQUekpPXw/s1600/realtimesync-main-window.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="430" data-original-width="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibOD3TDSl32UInN-y53T38X1rbH8DvOgO0MoXcOY7H1eHj3qxFoFFd6YFSe6vXflQ8TlbfuIxG2aDbtt6kselzpsjvSV-3gYmZSX4PzMMxmJITiaBFnS5pXSmXDfUVM0eIEm8mXq4aCQj7MBlufqgqICpvXrYWrNcnUKibICOeNHEMq_DLuS3vQUekpPXw/s1600/realtimesync-main-window.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;RealTimeSync&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;O con también podemos usar la herramienta&amp;nbsp; &lt;a href="https://freefilesync.org/manual.php?topic=realtimesync" target="_blank"&gt;RealTimeSync&lt;/a&gt; (incluida en FreeFileSync) para una sincronización en tiempo real (consulte&amp;nbsp; &lt;a href="https://www.maravento.com/2014/06/sincronizacion-espejo.html" target="_blank"&gt;Sincronización Espejo&lt;/a&gt;). &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Imágenes cortesía de &lt;a href="https://www.ubackup.com/" target="_blank"&gt;AOMEI&lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Video Recomendado:&amp;nbsp; &lt;a href="https://www.youtube.com/watch?v=5BXTyhEEejk" target="_blank"&gt;RClone en Linux, sincroniza nubes One Drive y Google Drive&lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/6059764134257360532" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/6059764134257360532" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2023/09/2-way-sync-con-rclone.html" rel="alternate" title="2-Way Sync con Rclone" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg80iG8tP5bVo5-V7ZznMCgaIuBvRT5UgVCyBDF5SHc6z-66X9OC7FRatHztAVDjDK4EaJ0XUloJhQ8HJsYdnSMctyzJmKhtfxzW6LI7TqL5ssnfkvR6tHoAy0-t-wUXua00cqrW8nL3l7UJvFhSJ3dpEhwNbLxMGKnkQRu5lLKHoyfWMVVenmQeZo7fWUY/s72-c/one-way-sync-vs-two-way-sync.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-8761366955670583661</id><published>2023-07-02T17:32:00.005-04:00</published><updated>2023-07-04T08:48:01.447-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apt"/><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><title type="text">Ejecutar alias con privilegios</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCOJEce1uFYKlnyckvHs0DUubfAq9QWx38A1a_GtuSnFIUhBtf0SvPJTw2bLT8IdUxPlYwJ3iB_nFDoMcEzYyGreEjaf2MFMLwkgORRM92b_mV_REMvetIg8E9ihxPPvHlh1MBRZxrsZCSX2kYZ8XXolMOkSOwSPQfXyTtKafp7Phm1FLbsRtYOnOBYTE6/s720/alias.png" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="431" data-original-width="720" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCOJEce1uFYKlnyckvHs0DUubfAq9QWx38A1a_GtuSnFIUhBtf0SvPJTw2bLT8IdUxPlYwJ3iB_nFDoMcEzYyGreEjaf2MFMLwkgORRM92b_mV_REMvetIg8E9ihxPPvHlh1MBRZxrsZCSX2kYZ8XXolMOkSOwSPQfXyTtKafp7Phm1FLbsRtYOnOBYTE6/s320/alias.png" width="320" /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;br /&gt;Para crear un alias simplemente editamos nuestro bashrc (sin privilegios sudo):
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;nano ~/.bashrc
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y agregamos el alias al final del archivo. Ejemplo creando un alias para actualizar Ubuntu: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;alias upgrade='sudo apt-get update &amp;amp;&amp;amp; sudo apt-get dist-upgrade &amp;amp;&amp;amp; sudo aptitude -y safe-upgrade &amp;amp;&amp;amp; sudo fc-cache &amp;amp;&amp;amp; sudo sync &amp;amp;&amp;amp; sudo updatedb'
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y cargamos el alias con: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;source ~/.bashrc
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y listo. A partir de ahora, en lugar de ejecutar esa cantidad de comandos, podemos abrir la consola y escribir "upgrade" y se ejecutarán todos en secuencia. Y hasta aquí debería llegar este post. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero, qué pasaría si queremos automatizar este proceso con un bash script y de paso incluirle más cosas, como instalación de programas, etc. Bueno, en este caso se complica un poco, puesto que los alias no se expanden en un contexto no interactivo (como un script) y bashrc tiene unas líneas que impiden esto: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Entonces, la solución, como bien nos explican en &lt;a href="https://linuxhandbook.com/run-alias-as-sudo" target="_blank"&gt;linuxhandbook,&lt;/a&gt;&amp;nbsp;podría ser crear un alias temporal (hay una explicación más larga de cómo funcionan los alias, y su diseño que pueden consultarla &lt;a href="https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html?ref=linuxhandbook.com#Aliases" target="_blank"&gt;AQUÍ&lt;/a&gt;). &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero el post solo explica cómo ejecutarlo en el terminal, no en un bash script, por tanto, hay que hacer algunos cambios. &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;Workaround &lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Primero hay que habilitar la expansión de alias en shells no interactivos, para evadir la restricción de bashrc, preferentemente después del shebang, y después de ejecutar el alias temporal, desactivamos la expansión y, si queremos, lo agregamos a nuestro bashrc para que esté disponible después del reinicio del PC, quedando así: &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Asumiendo que ya tenemos nuestro script con los permisos: &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;sudo touch myscript.sh
sudo chmod +x myscript.sh
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Le agregamos el siguiente contenido: &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;#!/bin/bash
  
# enabling alias expansion in non-interactive shells / habilitando la expansión de alias en shells no interactivos
shopt -s expand_aliases

# create temporary aliases (no sudo) / creando alias temporal (sin sudo)
alias myupgrade='apt-get update &amp;amp;&amp;amp; apt-get dist-upgrade &amp;amp;&amp;amp; aptitude -y safe-upgrade &amp;amp;&amp;amp; fc-cache &amp;amp;&amp;amp; sync &amp;amp;&amp;amp; updatedb'

# creating temporary sudo aliases / creando alias temporal de sudo
alias sudo='sudo '

# run temporary aliases / ejecutando alias temporal
myupgrade

# disabling alias expansion in non-interactive shells (optional) / deshabilitando la expansión de alias en shells no interactivos (opcional)
shopt -u expand_aliases

# local user with sudo privileges / usuario local con privilegios sudo
local_user=${SUDO_USER:-$(whoami)}

# create permanent aliases (with sudo - Change will be permanent after reboot) / creando alias permamente (con sudo - El cambio será permanente después de reiniciar)
sudo -u $local_user bash -c "echo alias myupgrade=\"'sudo apt-get update &amp;amp;&amp;amp; sudo apt-get dist-upgrade &amp;amp;&amp;amp; sudo aptitude -y safe-upgrade &amp;amp;&amp;amp; sudo fc-cache &amp;amp;&amp;amp; sudo sync &amp;amp;&amp;amp; sudo updatedb'\"" &amp;gt;&amp;gt; /home/$local_user/.bashrc

# rest of script / resto del script
apt -y install etc etc etc
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Y solo resta ejecutar el script: &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;sudo ./myscript.sh
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Y es todo. Ya puede ejecutar su alias en el terminal con su script y también dejarlo permanente en bashrc. &lt;/div&gt;
  &lt;br /&gt;
  &lt;div style="text-align: justify;"&gt;Fuentes consultadas: &lt;a href="https://askubuntu.com/questions/1475546/how-to-add-alias-to-bashrc-and-load-content-with-sudo" target="_blank"&gt;askubuntu&lt;/a&gt;,&amp;nbsp; &lt;a href="https://linuxhandbook.com/run-alias-as-sudo" target="_blank"&gt;linuxhandbook&lt;/a&gt;, &lt;a href="https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html?ref=linuxhandbook.com#Aliases" target="_blank"&gt;6.6 Aliases GNU&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/8761366955670583661" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/8761366955670583661" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2023/07/ejecutar-alias-en-bash-con-privilegios.html" rel="alternate" title="Ejecutar alias con privilegios" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCOJEce1uFYKlnyckvHs0DUubfAq9QWx38A1a_GtuSnFIUhBtf0SvPJTw2bLT8IdUxPlYwJ3iB_nFDoMcEzYyGreEjaf2MFMLwkgORRM92b_mV_REMvetIg8E9ihxPPvHlh1MBRZxrsZCSX2kYZ8XXolMOkSOwSPQfXyTtKafp7Phm1FLbsRtYOnOBYTE6/s72-c/alias.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-5456340249629598644</id><published>2023-04-04T16:23:00.145-04:00</published><updated>2025-09-27T17:23:44.196-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="HowTO"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Monitor"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="WebApp"/><title type="text">Glances</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg45rgDIS6DcksCqrk2i2gka0u7lUkApapBWBG2XAj8PMShFovnAb6BkaPOTpobaP6urehbl2EBL34dv7LIhPYICZJbIh7O_vACOzGeq54wAxOPs9uvTlifQWykI52Uu--Q0ozVil45tKJdVXkax5WBDpHLZVAsSOli6tunZ3wVnHR9FttWaIuUKhZW7A/s900/glances-responsive-webdesign.png" style="margin-left: 1em; margin-right: 1em;"&gt;
    &lt;img border="0" data-original-height="675" data-original-width="900" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg45rgDIS6DcksCqrk2i2gka0u7lUkApapBWBG2XAj8PMShFovnAb6BkaPOTpobaP6urehbl2EBL34dv7LIhPYICZJbIh7O_vACOzGeq54wAxOPs9uvTlifQWykI52Uu--Q0ozVil45tKJdVXkax5WBDpHLZVAsSOli6tunZ3wVnHR9FttWaIuUKhZW7A/s320/glances-responsive-webdesign.png" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;a href="https://github.com/nicolargo/glances" target="_blank"&gt;Glances&lt;/a&gt; es una herramienta multiplataforma de monitoreo de recursos en tiempo real, similar a &lt;a href="https://github.com/aristocratos/bpytop" target="_blank"&gt;BpyTop,&lt;/a&gt;&amp;nbsp;algo&amp;nbsp;esencial para garantizar un rendimiento óptimo y prevenir problemas de estabilidad en el sistema operativo Linux. Usa la biblioteca &lt;code&gt;psutil&lt;/code&gt; para recopilar y presentar una gran cantidad de información de monitoreo en el terminal o la interfaz Web. Y como dato curioso, es web responsive, como se muestra en la imagen del encabezado (la información se adapta dinámicamente según el tamaño de la interfaz de usuario).
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Instalación&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Glances se puede instalar fácilmente en sistemas Linux mediante el uso del gestor de paquetes de su distribución, aunque el proyecto ofrece &lt;a href="https://github.com/nicolargo/glances/blob/master/README.rst#installation" target="_blank"&gt;muchas maneras de instalarlo&lt;/a&gt;. Por ejemplo, vía bash: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;curl -L https://bit.ly/glances | /bin/bash
# or
wget -O- https://bit.ly/glances | /bin/bash
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y si usa Ubuntu 22.04 deberá corregirlo. Para esto lo descargamos: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;wget https://raw.githubusercontent.com/nicolargo/glancesautoinstall/master/install.sh
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y reemplazamos: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;python-pip python-dev
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;por: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;python3-pip python-dev-is-python3
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y tal vez necesite otros reemplazos. Para eliminarlo, ejecute: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo pip uninstall glances
sudo rm -rf /usr/local/bin/glances /usr/bin/glances
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Este método, como pueden apreciar, presenta problemas en Ubuntu. Sugerimos entonces que, si usa esta distro, simplemente ejecute: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt install glances
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y se instalará la versión (a la fecha): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;glances -V
Glances v3.2.4.2 with PsUtil v5.9.0
Log file: /home/user/.local/share/glances/glances.log
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para eliminarlo: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt-get purge --auto-remove glances
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para iniciarlo en el terminal, escriba en el terminal&amp;nbsp; &lt;code&gt;glances&lt;/code&gt; y saldrá la siguiente ventana: &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp-L-pqugL0BvlSu9zPXB5gp58-7hbHcmdMJRykqqNDflVO8J_63juXTfuR5l2F-DP7R_MmefE6_C3p776LMKkb-kSMld2TN9zCPLk0-XS-l6_qQnN1lF2wBkvyVX2Wv_R-5G0rYnUsehDODlDAavpsFoX1ape3Bm5PqYvzfpOiVEVIECmrwuavX2oGQ/s1600/glances-summary.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="748" data-original-width="1571" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp-L-pqugL0BvlSu9zPXB5gp58-7hbHcmdMJRykqqNDflVO8J_63juXTfuR5l2F-DP7R_MmefE6_C3p776LMKkb-kSMld2TN9zCPLk0-XS-l6_qQnN1lF2wBkvyVX2Wv_R-5G0rYnUsehDODlDAavpsFoX1ape3Bm5PqYvzfpOiVEVIECmrwuavX2oGQ/s1600/glances-summary.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Glances Terminal (-s)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Aquí podemos apreciar toda la información que brinda este programa de monitoreo. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;
    &lt;a href="https://glances.readthedocs.io/en/latest/quickstart.html#web-server-mode" target="_blank"&gt;Web Server Mode (WEB-UI)&lt;/a&gt;
  &lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Consideramos que es más práctico ejecutar este aplicativo en el navegador, muy útil para sistemas sin escritorio. Para hacerlo, ejecútelo con la opción &lt;code&gt;-w&lt;/code&gt;: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;glances -w &amp;amp;
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y en el navegador la IP:puerto del servidor. Ejemplo: &lt;code&gt;http://192.168.20.105:61208&lt;/code&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para que refresque cada 10 segundos: &lt;code&gt;http://192.168.20.105:61208/10&lt;/code&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero si no queremos enredarnos, usaremos el servicio de &lt;code&gt;systemd&lt;/code&gt;. Habilitamos el servicio: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo systemctl enable glances.service
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Editamos el archivo del servicio: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo nano /usr/lib/systemd/system/glances.service
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y modificamos la siguiente línea: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;[Service]
ExecStart=/usr/bin/glances -s -B 127.0.0.1
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;por: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;ExecStart=/usr/bin/glances -w -B 127.0.0.1 -t 10
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Donde &lt;code&gt;-t 10&lt;/code&gt; son los segundos de refresco, &lt;code&gt;-w&lt;/code&gt; es para iniciar la interfaz web (ya que &lt;code&gt;-s&lt;/code&gt; es para el terminal) y &lt;code&gt;-B&lt;/code&gt; es la dirección IP. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y recargamos y reiniciamos: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo systemctl daemon-reload
sudo systemctl restart glances.service
# or
sudo /etc/init.d/glances restart
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y verificamos que esté activo y corriendo: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo systemctl status glances.service
● glances.service - Glances
     Loaded: loaded (/lib/systemd/system/glances.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-04-04 11:50:22 -05; 48s ago
       Docs: man:glances(1)
             https://github.com/nicolargo/glances
   Main PID: 593518 (glances)
      Tasks: 2 (limit: 18727)
     Memory: 40.8M
        CPU: 2.480s
     CGroup: /system.slice/glances.service
             └─593518 /usr/bin/python3 /usr/bin/glances -s -B 127.0.0.1 -t 10

abr 04 11:50:22 mst systemd[1]: Started Glances.
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Si no pone dirección IP en el archivo del servicio, la dirección de enlace predeterminada es &lt;code&gt;0.0.0.0&lt;/code&gt; (Glances escuchará en todas las interfaces de red disponibles) y el puerto TCP es &lt;code&gt;61209&lt;/code&gt;. Y, por tanto, el acceso será por &lt;code&gt;http://127.0.0.1:61208/&lt;/code&gt; o por &lt;code&gt;http://0.0.0.0:61208/&lt;/code&gt;, o la IP del equipo donde esté instalado. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para cambiar el puerto, nuevamente edite el archivo del servicio y agregue el puerto:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;[Service]
ExecStart=/usr/bin/glances -w -B 127.0.0.1 -t 10 -p 1212
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Donde el parámetro &lt;code&gt;-p&lt;/code&gt; es el puerto que usará el aplicativo. Ahora puede acceder por &lt;code&gt;http://127.0.0.1:1212/&lt;/code&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota: &lt;/u&gt;
&lt;/div&gt;
&lt;ol style="text-align: left;"&gt;
  &lt;li&gt;No use &lt;code&gt;http://localhost:61209&lt;/code&gt; porque no es una dirección IP &lt;/li&gt;
  &lt;li&gt;Asegúrese de abrir el puerto en su firewall&lt;/li&gt;
  &lt;pre class="prettyprint"&gt;sudo ufw allow 61208/tcp
sudo ufw reload
&lt;/pre&gt;
  &lt;li&gt;Verifique que no haya varias instancias de Glance corriendo para evitar el &lt;code&gt;Error: Can not ran Glances Web server ([Errno 98] La dirección ya se está usando)"&lt;/code&gt;. En ese caso, ejecute: &lt;/li&gt;
  &lt;pre class="prettyprint"&gt;sudo pkill glances
&lt;/pre&gt;
&lt;/ol&gt;
&lt;div style="text-align: justify;"&gt;También puede proteger el servidor Glances con password en &lt;code&gt;~/.config/glances/.&lt;/code&gt;. Consulte &lt;a href="https://glances.readthedocs.io/en/latest/quickstart.html#how-to-protect-your-server-or-web-server-with-a-login-password" target="_blank"&gt;AQUÍ&lt;/a&gt; para mayor información &lt;/div&gt;
&lt;pre class="prettyprint"&gt;[passwords]
# Define the passwords list
# Syntax: host=password
# Where: host is the hostname
#        password is the clear password
# Additionally (and optionally) a default password could be defined
localhost=mylocalhostpassword
default=mydefaultpassword
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Issues&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;a href="https://github.com/nicolargo/glances/issues/2021" target="_blank"&gt;Muchos usuarios han reportado&lt;/a&gt; que al acceder a la interfaz web, la página sale en blanco. Resulta que por &lt;a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990340" target="_blank"&gt;políticas de Debian&lt;/a&gt; los paquetes no deberían incluir archivos preconstruidos, por esta razón, eliminaron los archivos &lt;code&gt;.js&lt;/code&gt; del paquete Glances, lo cual inutiliza la interfaz WEB-UI.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt; Mientras se soluciona este &lt;a href="https://github.com/nicolargo/glances/issues/2021" target="_blank"&gt;bug&lt;/a&gt;, hay dos opciones: &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;1. Instalarlo vía &lt;a href="https://github.com/nicolargo/glances#pypi-the-standard-way" target="_blank"&gt;pip&lt;/a&gt;, que puede llegar a ser un poco engorroso para los no familiarizados con el tema, ya que se recomienda&amp;nbsp;crear un entorno virtual: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;pip install --user 'glances[action,browser,cloud,cpuinfo,docker,export,folders,gpu,graph,ip,raid,snmp,web,wifi]'
pip install --user --upgrade glances
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;2. Instalarlo vía &lt;code&gt;apt&lt;/code&gt; y descargar el paquete que restablece los archivos &lt;code&gt;.js&lt;/code&gt;, eliminados por Debian/Ubuntu (consulte &lt;a href="https://github.com/nicolargo/glances/issues/2021#issuecomment-1416829760" target="_blank"&gt;AQUÍ&lt;/a&gt;&amp;nbsp;la solución): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;wget -c https://github.com/nicolargo/glances/archive/refs/tags/v3.2.7.tar.gz
tar -xzf v3.2.7.tar.gz
sudo cp -r glances-3.2.7/glances/outputs/static/public/ /usr/lib/python3/dist-packages/glances/outputs/static/
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Refrescamos la página y ya se puede visualizar: &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBHFDD4XdAjgXdgqM-Nd8Fj7UB9sCg5ANFIGFSarSdxXAny966Rv_T9Qy9GqBjeVTkgYWFW2QBA1huXqceMmE0Fj6EEZk4Y8KKX6ag2tvx1OgGN_8bq6NxXvCqHA8-aUrxLkLY0LjKCdDYiuWr_cv-oYfov2-CD-Xzuu7l2vGNZAx9ru00OU9gwRcUVw/s1600/glances-web.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="1014" data-original-width="1915" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBHFDD4XdAjgXdgqM-Nd8Fj7UB9sCg5ANFIGFSarSdxXAny966Rv_T9Qy9GqBjeVTkgYWFW2QBA1huXqceMmE0Fj6EEZk4Y8KKX6ag2tvx1OgGN_8bq6NxXvCqHA8-aUrxLkLY0LjKCdDYiuWr_cv-oYfov2-CD-Xzuu7l2vGNZAx9ru00OU9gwRcUVw/s1600/glances-web.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Glances Web-UI&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Otros registros&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Glances muestra mucha información esencial, pero hay otras cosas que pueden ser algo "confusas", por llamarlas de alguna manera. Es el caso de extrañas alertas de tipo &lt;b&gt;WARNING (or&amp;nbsp;CRITICAL) on CPU_IOWAIT&lt;/b&gt;. &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir6OS7hU4PDY1oYfjnjd-GyPCUbMjlzAtOQm1ItbDrd81-wvYSqBUY3yUy5bqwv7uMiNHWAtEDZmQTEsu79QJyX2vPaAW9hFNw9pTRrlrD3o_PqK4gHeUtDAj_VW7rl9R1oiI3hZa4vnEzLT0I1ttzG9j9ENGc32C33Ol1xq76-loX7pP3yQyYzW48-Q/s1600/glance-critical.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="139" data-original-width="953" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir6OS7hU4PDY1oYfjnjd-GyPCUbMjlzAtOQm1ItbDrd81-wvYSqBUY3yUy5bqwv7uMiNHWAtEDZmQTEsu79QJyX2vPaAW9hFNw9pTRrlrD3o_PqK4gHeUtDAj_VW7rl9R1oiI3hZa4vnEzLT0I1ttzG9j9ENGc32C33Ol1xq76-loX7pP3yQyYzW48-Q/s1600/glance-critical.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;
        &lt;b style="text-align: justify;"&gt;Alerta CPU_IOWAIT en un proxy HPE Proliant G9&lt;/b&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Según el &lt;a href="https://github.com/nicolargo/glances/issues/1214" target="_blank"&gt;Issue #1214&lt;/a&gt;, "en un sistema muy rápido, en su mayoría inactivo, escribir en discos giratorios a menudo hace que Glances genere alertas CPU_IOWAIT críticas, simplemente porque escribir en discos giratorios es lento y la CPU no está haciendo nada más en ese momento. Sin embargo, estas alertas en realidad no significan que algo esté mal".&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En el &lt;a href="https://github.com/nicolargo/glances/issues/2330" target="_blank"&gt;Issue #2330&lt;/a&gt;,&amp;nbsp;el creador nos sugiere que, como ningún sistema es igual y no tiene los mismos valores, entonces subirlos: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo nano /etc/glances/glances.conf
[cpu]
total_careful=65 # subir a 70 o 75
total_warning=75 # subir a 80 o 85
total_critical=85 # subir a 90 o 95
sudo service glances restart
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Otra cosa que hace Glances es mostrar la memoria virtual. Y no se asusten si ven algo como esto: &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXyT1icbtlIqcu_Sew4LTdpp5haCEn89tmFJ79okFaYgtHf0dCNPdU2UfPMfkoUUdiJqnBxaTD1KAhZAQzDbiruqRM5BlpIFAoosQ-3p6KeDlyUpwc90GAtbJEGLtAwduwNsB-M8aIpkxE_VGPvyGAaVczgxvtQAw05YGiTHKiNkD_vJwkWLH6c4kFsA/s1600/glances-virtualmemory.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="143" data-original-width="1170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXyT1icbtlIqcu_Sew4LTdpp5haCEn89tmFJ79okFaYgtHf0dCNPdU2UfPMfkoUUdiJqnBxaTD1KAhZAQzDbiruqRM5BlpIFAoosQ-3p6KeDlyUpwc90GAtbJEGLtAwduwNsB-M8aIpkxE_VGPvyGAaVczgxvtQAw05YGiTHKiNkD_vJwkWLH6c4kFsA/s1600/glances-virtualmemory.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Memoria Virtual (VIRT)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;En la imagen anterior vemos como Chrome se traga "1.10T" (TB) en tan solo una sola pestaña, como se muestra en la columna VIRT en un PC que tiene 16 GB RAM con 500 GB de SSD.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Resulta que, como bien lo explican &lt;a href="https://serverfault.com/a/1128886/480349" target="_blank"&gt;AQUÍ&lt;/a&gt;, la "memoria virtual" aquí no significa "intercambio" o "archivo de paginación" (como en Windows). Aquí significa "espacio de direcciones virtual abstracto", por lo tanto, no corresponde a la asignación de RAM física u otra cosa (también conocido como 'overcommit' en Linux), permaneciendo en su mayoría asignados a una sola página "cero". O sea, que esto también es normal, como lo afirma su creador en el &lt;a href="https://github.com/nicolargo/glances/issues/2343" target="_blank"&gt;Issue #2343&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y eso fue todo. Esperamos que disfruten este magnífico programa de monitoreo de recursos. Visiten el &lt;a href="https://nicolargo.github.io/glances/" target="_blank"&gt;sitio oficial&lt;/a&gt; para más información y consulte la documentación completa&amp;nbsp; &lt;a href="https://glances.readthedocs.io/en/latest/" target="_blank"&gt;AQUÍ&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Bash Script&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para instalar glances use el siguiente loop (tested en Ubuntu 22.04/24.04):&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/usr/bin/env bash
# Install Glances With the following command:
#sudo chmod +x glances_install.sh &amp;amp;&amp;amp; sudo ./glances_install.sh
apt install -y glances
systemctl enable glances.service
systemctl stop glances.service
export GLANCES_VERSION=$(glances -V | head -n 1 | awk '{print $2}' | sed 's/^v//')
wget "https://github.com/nicolargo/glances/archive/refs/tags/v${GLANCES_VERSION}.tar.gz"
tar -xzf v${GLANCES_VERSION}.tar.gz
rm v${GLANCES_VERSION}.tar.gz
cp -r glances-${GLANCES_VERSION}/glances/outputs/static/public/ /usr/lib/python3/dist-packages/glances/outputs/static/
rm -rf glances-${GLANCES_VERSION}
sed -i '/ExecStart=\/usr\/bin\/glances -s -B 127.0.0.1/c\ExecStart=\/usr\/bin\/glances -w -B 0.0.0.0 -t 10 -p 61208' /usr/lib/systemd/system/glances.service
# Performance Co-Pilot (PCP) (Optional)
nala install -y pcp cockpit-pcp
systemctl enable --now pmcd pmlogger
systemctl daemon-reload
systemctl start glances.service
&lt;/pre&gt; Ahora ya podrá acceder por:
&lt;pre class="prettyprint"&gt;http://localhost:61208
http://127.0.0.1:61208
http://tu_IP:61208
&lt;/pre&gt;
&lt;br /&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/5456340249629598644" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/5456340249629598644" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2023/04/glances.html" rel="alternate" title="Glances" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg45rgDIS6DcksCqrk2i2gka0u7lUkApapBWBG2XAj8PMShFovnAb6BkaPOTpobaP6urehbl2EBL34dv7LIhPYICZJbIh7O_vACOzGeq54wAxOPs9uvTlifQWykI52Uu--Q0ozVil45tKJdVXkax5WBDpHLZVAsSOli6tunZ3wVnHR9FttWaIuUKhZW7A/s72-c/glances-responsive-webdesign.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-3170475953984067978</id><published>2023-01-26T14:50:00.041-05:00</published><updated>2023-04-11T14:18:40.357-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apt"/><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="repair"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><title type="text">Paquetes retenidos</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVaQdO7_E3Qe9vz-YDLgMcTs79SR_QytZSnbVi3lHFHpN65XhF7-r1jjwI75mglgsq5Oak5UzJiAhREuerMkfSO-0XEO5S-bu0SgKqPPWcBagKWJJiw2wX7XfWkztiptQ949AkLbu7a7JAcO7bfZHb655sfBFS-Rug7CN4JYDOFnTIW5unSOHuVYn_Ew/s1117/phasing-1.png" style="margin-left: 1em; margin-right: 1em;"&gt;
    &lt;img border="0" data-original-height="668" data-original-width="1117" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVaQdO7_E3Qe9vz-YDLgMcTs79SR_QytZSnbVi3lHFHpN65XhF7-r1jjwI75mglgsq5Oak5UzJiAhREuerMkfSO-0XEO5S-bu0SgKqPPWcBagKWJJiw2wX7XfWkztiptQ949AkLbu7a7JAcO7bfZHb655sfBFS-Rug7CN4JYDOFnTIW5unSOHuVYn_Ew/s320/phasing-1.png" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Es posible que durante una actualización de Ubuntu 22.04 salga el mensaje "Los siguientes paquetes se han retenido":&lt;/div&gt;
&lt;pre class="prettyprint"&gt;the following packages have been kept back:
   gnome-remote-desktop update-notifier update-notifier-common
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Si listamos los paquetes de ejemplo, encontramos lo siguiente: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt list --upgradable
gnome-remote-desktop/jammy-updates 42.7-0ubuntu1 amd64 [upgradable from: 42.3-0ubuntu1]
update-notifier-common/jammy-updates,jammy-updates 3.192.54.3 all [upgradable from: 3.192.54]
update-notifier/jammy-updates 3.192.54.3 amd64 [upgradable from: 3.192.54]
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y corremos los comandos usuales para intentar solucionarlo, sin éxito: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt upgrade
sudo apt dist-upgrade
sudo apt-get upgrade
sudo apt-get --with-new-pkgs upgrade
sudo apt-get install --only-upgrade
sudo apt full-upgrade
# etc., etc.
&lt;/pre&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;img alt="" border="0" data-original-height="503" data-original-width="785" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLE6zmXN-AUqlHy6mvDM9ffGzQ6pUJ_o1jzQDnmSttoqDPt1inMaws3Swvz9V2mfHIDepVBdFYJkmaGp28jztoGOc2173VwhICi19ykAg4h2Kl6ScwkKqWWSXKTtvc-4rqWgrIyiP_dY010R1XRaudsTZWDqEx2w1QqH1h5xv9sQW5wlex7PnfscnERw/s1600/phasing-2.png" /&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;paquetes retenidos&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Ni siquiera el poderoso &lt;a href="https://gitlab.com/volian/nala/-/issues/219" target="_blank"&gt;nala&lt;/a&gt; puede solventar este problema: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo nala install --no-full
&lt;/pre&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;img alt="" border="0" data-original-height="76" data-original-width="721" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYppsxai8Z090okW3g4pYvGp1JxeldhxmMmpzY9UfGA16cM-BemSlIybbUvPcdLXcmBwhIpfCFbtVp6C76J1exlCKEoORxDeuTxrOwzZf0jTlFnL0m5vVJ4Mf5baFs1E-N1yP5OJgJ_FaJWNhwrBIJYcft8fulft5tKmoJvBcRpzwywgtDbUl0Wpm8oA/s1600/phasing-4.png" /&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;nala&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;¿Por qué sucede esto? &lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;La respuesta es "Actualizaciones por Fases" ( &lt;a href="https://wiki.ubuntu.com/PhasedUpdates" target="_blank"&gt;Phased Updates&lt;/a&gt;); un sistema que Ubuntu Desktop implementó desde la versión 13.04 para &lt;code&gt;apt-get&lt;/code&gt; y a partir de la versión 21.04, &lt;code&gt;apt&lt;/code&gt; también comenzó a usarlo, el cual tiene como propósito proteger el sistema de una actualización ocasional con errores, pero, en un entorno automatizado con bash script, puede frenar la ejecución de una tarea programada de actualización por causa de los paquetes retenidos. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Solución &lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Hay varias. Si solo quiere resolver el problema temporalmente, ejecute en la consola: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt -o APT::Get::Always-Include-Phased-Updates=true upgrade
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para hacerlo permanente, creamos el archivo: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo touch /etc/apt/apt.conf.d/99-Phased-Updates
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Con el contenido: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;Update-Manager::Always-Include-Phased-Updates;
APT::Get::Always-Include-Phased-Updates True;
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;También puede hacerlo en una sola línea: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;echo $'Update-Manager::Always-Include-Phased-Updates;\nAPT::Get::Always-Include-Phased-Updates True;' | sudo tee -a /etc/apt/apt.conf.d/99-Phased-Updates &amp;gt; /dev/null

# o:

sudo tee -a /etc/apt/apt.conf.d/99-Phased-Updates &amp;gt; /dev/null &amp;lt;&amp;lt; EOF
Update-Manager::Always-Include-Phased-Updates;
APT::Get::Always-Include-Phased-Updates True;
EOF
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;O puede crear dos opciones en el archivo y desactivarlo o activarlo manualmente. Simplemente comente o descomente el bloque de líneas, cambiando de &lt;code&gt;Always&lt;/code&gt; por &lt;code&gt;Never&lt;/code&gt; y viceversa. Ejemplo: &lt;/div&gt;
&lt;pre class="prettyprint"&gt; # Desactivado
#Update-Manager::Never-Include-Phased-Updates;
#APT::Get::Never-Include-Phased-Updates True;
# Activado:
Update-Manager::Always-Include-Phased-Updates;
APT::Get::Always-Include-Phased-Updates True;
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y finalmente actualizamos con &lt;code&gt;apt upgrade&lt;/code&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero puede ahorrarse todo esto gracias al milagroso &lt;code&gt;aptitude&lt;/code&gt; que siempre termina salvando la campana, con tan solo ejecutar: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo aptitude safe-upgrade
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Puede consultar el listado de estos paquetes en &lt;a href="https://people.canonical.com/~ubuntu-archive/phased-updates.html" target="_blank"&gt;Phasing Ubuntu Stable Release Updates&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Fuente Consultada: &lt;a href="https://askubuntu.com/a/1246984/828892" target="_blank"&gt;askubuntu.com&lt;/a&gt;
&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/3170475953984067978" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/3170475953984067978" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2023/01/paquetes-retenidos.html" rel="alternate" title="Paquetes retenidos" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVaQdO7_E3Qe9vz-YDLgMcTs79SR_QytZSnbVi3lHFHpN65XhF7-r1jjwI75mglgsq5Oak5UzJiAhREuerMkfSO-0XEO5S-bu0SgKqPPWcBagKWJJiw2wX7XfWkztiptQ949AkLbu7a7JAcO7bfZHb655sfBFS-Rug7CN4JYDOFnTIW5unSOHuVYn_Ew/s72-c/phasing-1.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-5576979146388129415</id><published>2022-11-29T12:37:00.330-05:00</published><updated>2025-11-01T19:27:02.562-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HowTO"/><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Monitor"/><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Virtual"/><title type="text">Cockpit + virt-manager</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfqJ-4elyHt63-yyws5LaSDF4CDF4eq8GyEzHwKpn2iEolGqMePai8EmiLMiggTePLKHv0INRWHpXFEoZeGKZSCKJUi-EWKmP8XsMVawc-17l2Po60LcMxiLGZL-4L9a0ItVWNzU8G_ZaTelYW9rOV89gsHuMI6s8vDePrv5U-AvqUacZoV8dNAHkrnQ/s1592/cockpit.png" style="margin-left: 1em; margin-right: 1em;"&gt;
    &lt;img border="0" data-original-height="781" data-original-width="1592" height="157" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfqJ-4elyHt63-yyws5LaSDF4CDF4eq8GyEzHwKpn2iEolGqMePai8EmiLMiggTePLKHv0INRWHpXFEoZeGKZSCKJUi-EWKmP8XsMVawc-17l2Po60LcMxiLGZL-4L9a0ItVWNzU8G_ZaTelYW9rOV89gsHuMI6s8vDePrv5U-AvqUacZoV8dNAHkrnQ/s320/cockpit.png" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Hoy abordaremos&amp;nbsp; &lt;a href="https://cockpit-project.org/" target="_blank"&gt;Cockpit&lt;/a&gt;,&amp;nbsp;una interfaz o&amp;nbsp;panel web para administrar servidores Linux,&amp;nbsp;donde&amp;nbsp;podemos ver registros del sistema, actualización e instalación, aplicaciones, redes, almacenamiento, servicios, cuentas, diagnóstico, terminal-shell, etc., etc., etc. En resumen, una auténtica navaja suiza y todo desde el navegador. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para instalarlo (en Ubuntu 22.04/24.04): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt install cockpit
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;En dependencia de su sistema, la aplicación mostrará paquetes adicionales para su instalación. Se recomienda instalarlos. Para mayor información, consulte&amp;nbsp; &lt;a href="https://cockpit-project.org/applications.html" target="_blank"&gt;Aplicaciones&lt;/a&gt;
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt install cockpit cockpit-storaged cockpit-networkmanager cockpit-packagekit cockpit-machines cockpit-sosreport virt-viewer
sudo usermod -aG libvirt-qemu $USER
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para iniciarlo y habilitarlo en el inicio del sistema: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo systemctl start cockpit cockpit.socket
sudo systemctl enable --now cockpit cockpit.socket&amp;nbsp;&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Cockpit ofrece una interfaz web amigable para administrar servidores, e incluye la creación y manejo de máquinas virtuales a través del módulo &lt;code&gt;cockpit-machines&lt;/code&gt;, que se integra con QEMU/KVM. Pero, aunque Cockpit permite iniciar y visualizar máquinas virtuales desde el navegador, esta visualización depende del paquete &lt;code&gt;virt-viewer&lt;/code&gt;, que incluye la herramienta &lt;code&gt;remote-viewer&lt;/code&gt;, (del cual hablaremos más adelante) y que es muy limitada. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Por tanto, se recomienda instalar los paquetes de QEMU/KVM (Cockpit y sus módulos relacionados), ya que incluye &lt;code&gt;virt-manager&lt;/code&gt; (Virtual Machine Manager), una GUI más avanzada para crear, configurar y administrar VMs de forma local, editar el hardware virtual, gestionar snapshots y controlar múltiples VMs desde una sola interfaz. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Si prefiere esta integración, ejecute este bash ( &lt;code&gt;sudo chmod +x cockpit.sh &amp;amp;&amp;amp; sudo ./cockpit.sh&lt;/code&gt;): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/bin/bash
# LOCAL USER
local_user=$(
    who | grep -m 1 '(:0)' | awk '{print $1}' || 
    who | head -1 | awk '{print $1}'
)
# Web Admin + Virtualization: Cockpit + QEMU/KVM
# Virtualization Tools
apt install -y qemu-kvm virt-manager virtinst libvirt-clients libvirt-daemon-system virtiofsd qemu-system qemu-guest-agent
usermod -aG kvm "$local_user"
usermod -aG libvirt "$local_user"
systemctl enable --now libvirtd
# Virtual Tools
apt install -y bridge-utils libguestfs-tools ovmf
# Cockpit
apt install -y cockpit cockpit-storaged cockpit-networkmanager cockpit-packagekit cockpit-machines cockpit-sosreport virt-viewer
systemctl enable --now cockpit cockpit.socket
echo "Cockpit Access: http://localhost:9090"
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Es importante que abra el puerto en el firewall:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo ufw allow 9090
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;El puerto por defecto es 9090. Verifique que esté libre: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo lsof -i -P -n | grep 9090
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Si está en uso, puede cambiarlo, creando el siguiente archivo: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo mkdir -p /etc/systemd/system/cockpit.socket.d
sudo touch /etc/systemd/system/cockpit.socket.d/listen.conf
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Lo edita con el siguiente contenido (por ejemplo, cambiado de 9090 a 9191): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;[Socket]
ListenStream=
ListenStream=9191
FreeBind=yes
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Opcional:&lt;/u&gt; Puede agregar la IP:Puerto del equipo. Ejemplo:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;ListenStream=192.168.0.10:9191
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Guarde los cambios y reinicie: &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: El comando &lt;code&gt;restart&lt;/code&gt; en ocasiones falla, por tanto, se recomienda usar stop/start
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo systemctl daemon-reload
sudo systemctl stop cockpit cockpit.socket
sudo systemctl start cockpit cockpit.socket
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota:&lt;/u&gt; Para mayor información, consulte &lt;a href="https://cockpit-project.org/guide/latest/listen" target="_blank"&gt;Listen&lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Ahora puede acceder a la interface de cockpit por el navegador con el siguiente enlace&amp;nbsp; &lt;code&gt;https://localhost:9090&lt;/code&gt;&amp;nbsp;(o el puerto que haya elegido).&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Lo primero que debe hacer es habilitar el acceso administrativo una vez esté dentro de la aplicación: &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj04ENVw47LHSdeKUYguz-Kosn7CwIa3g2iex6srElTyDlUkYy87UDWr5rDJ_KjwNhfj8uSUkgnZKKQeF5wp-TqqtfeQIQUvG8B5PGHbohRPDSjQOxgRQUSyBGRTQvJqtC0lMXPsFTjUTv7y1Cd8gV4OHiupYcJ8F0Ki84Dejb3UiWvIN5FUGy_s4Zlxw/s1600/cockpit-admin.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="362" data-original-width="1021" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj04ENVw47LHSdeKUYguz-Kosn7CwIa3g2iex6srElTyDlUkYy87UDWr5rDJ_KjwNhfj8uSUkgnZKKQeF5wp-TqqtfeQIQUvG8B5PGHbohRPDSjQOxgRQUSyBGRTQvJqtC0lMXPsFTjUTv7y1Cd8gV4OHiupYcJ8F0Ki84Dejb3UiWvIN5FUGy_s4Zlxw/s1600/cockpit-admin.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;acceso administrativo&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;En este punto, es posible que comiencen a aparecer mensajes en &lt;code&gt;syslog&lt;/code&gt; como este (bug &lt;a href="https://github.com/cockpit-project/cockpit/issues/14896" target="_blank"&gt;14896&lt;/a&gt;): &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg85I3VVWBqKFNttJMjV1viFzJ_A9Brl5ePvCZCpG8FYJZ30f3SR-es_HTxZZYMZtW_pjkrIzGYy3hYcneE_QiWCpE_RIeNB0XixCt_CmqNZ1ZkiKl2VfFAbzGOvi7LPaHduqxQECpufoRpWYnlbswlF0BdLSz-n8U1F1Kt9jPjLJqn21pcLKt2b4Ihqg/s1600/cockpitsyslog.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="493" data-original-width="1157" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg85I3VVWBqKFNttJMjV1viFzJ_A9Brl5ePvCZCpG8FYJZ30f3SR-es_HTxZZYMZtW_pjkrIzGYy3hYcneE_QiWCpE_RIeNB0XixCt_CmqNZ1ZkiKl2VfFAbzGOvi7LPaHduqxQECpufoRpWYnlbswlF0BdLSz-n8U1F1Kt9jPjLJqn21pcLKt2b4Ihqg/s1600/cockpitsyslog.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;error cockpit-tls: gnutls_handshake failed /var/log/syslog&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Y hasta tanto corrijan el bug, dos varias maneras de evitarlos:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Acceder por &lt;b&gt;http&lt;/b&gt;&amp;nbsp;( &lt;code&gt;http://localhost:9090&lt;/code&gt;) en lugar de &lt;b&gt;https&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Instalar tus &lt;a href="https://cockpit-project.org/guide/latest/https.html#https-certificates" target="_blank"&gt;propios certificados&lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;También puede usar&amp;nbsp; &lt;a href="https://cockpit-project.org/external/wiki/Proxying-Cockpit-over-Apache-with-LetsEncrypt" target="_blank"&gt;Cockpit sobre&amp;nbsp; &lt;span style="text-align: left;"&gt;Apache con LetsEncrypt&lt;/span&gt;
  &lt;/a&gt;&amp;nbsp;o&amp;nbsp; &lt;a href="https://cockpit-project.org/external/wiki/Proxying-Cockpit-over-NGINX" target="_blank"&gt;sobre NGINX&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;VMs&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Como mencionamos, cockpit trabaja con QEMU libvirt y virtualización KVM (archivos &lt;code&gt;.qcow2&lt;/code&gt;), que soporta VMs creadas en VirtualBox en formato &lt;code&gt;.vdi&lt;/code&gt; siendo una excelente alternativa &lt;a href="https://github.com/phpvirtualbox/phpvirtualbox" target="_blank"&gt;phpVirtualBox&lt;/a&gt;, que se quedó sin soporte hace algunos años, aunque hay una &lt;a href="https://www.maravento.com/2015/02/administrando-vms.html#:~:text=sin%20cabeza%E2%80%9D%20(GUI)-,Update%202022,-phpvirtualbox%20se%20ha" target="_blank"&gt;actualización externa al proyecto&lt;/a&gt; y cualquier otro tipo de imagen compatible con QEMU (ver lista &lt;a href="https://en.wikibooks.org/wiki/QEMU/Images" target="_blank"&gt;AQUÍ&lt;/a&gt;). Para hacerlo, solo tiene que importar los discos virtuales en la sección "Import VM (importar una MV)". &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;En Contra&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Cockpit no soporta Spice en el navegador (solo consola VNC; asumimos que por razones de compatibilidad web), entonces las VMs creadas por &lt;code&gt;virt-manager&lt;/code&gt; no se podrán ver corriendo en el navegador. Entonces, si desea ver su VM ejecutándose en el navegador, sí o sí deberá crearla en Cockpit. Tenga en cuenta que si hace esto, Cockpit por defecto accederá a su visualización con la consola VNC. Y a pesar de que puedes &lt;a href="https://cockpit-project.org/blog/cockpit-311.html" target="_blank"&gt;convertir Spice en VNC&lt;/a&gt;&amp;nbsp;desde la interfaz web,&amp;nbsp;esta consola VNC de cockpit es bastante limitada (no permite redimensionar los marcos, no tiene soporte para copiar y pegar, interfaz menos fluida, prblemas con el audio, redirección usb, carpetas compartidas, etc., etc.). Por tanto, se recomienda usar un programa externo como &lt;code&gt;virt-manager&lt;/code&gt; o &lt;code&gt;remote-viewer&lt;/code&gt;: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;remote-viewer spice://[::1]:5901
# o
remote-viewer spice://localhost:5901
&lt;/pre&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk4wSV4UseVzO7c5Wn4OiwL23nn41NSPRzUEtXS4eX8f4tqU7PTISuHVqeZp84zTVZKvzUFIqi3N0g9Ao5I0HxwbByRv0FxzHPYD4N9Foskmfj__6neo84MucsxXu9lB2NVccPzUHFgVJiVZHfAyvFdFQgsq17SmB73fyNuN_rdz9QcnbzM2_IvGbNXvbJ/s1600/cockpit-spice.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="740" data-original-width="1364" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk4wSV4UseVzO7c5Wn4OiwL23nn41NSPRzUEtXS4eX8f4tqU7PTISuHVqeZp84zTVZKvzUFIqi3N0g9Ao5I0HxwbByRv0FxzHPYD4N9Foskmfj__6neo84MucsxXu9lB2NVccPzUHFgVJiVZHfAyvFdFQgsq17SmB73fyNuN_rdz9QcnbzM2_IvGbNXvbJ/s1600/cockpit-spice.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Instalación de Ubuntu: remote-viewer spice://localhost:5901&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Notas&lt;/u&gt;: &lt;div style="text-align: justify;"&gt;- &lt;code&gt;virt-manager&lt;/code&gt; permite cambiar la VM a VNC pero genera muchos errores de tipo &lt;code&gt;spicevmc&lt;/code&gt;, por tanto no se recomienda. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;- No olvide editar el archivo de configuración y descomentar (puede cambiar 0.0.0.0 por 127.0.0.1): &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;sudo nano /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0"
spice_listen = "0.0.0.0"
sudo systemctl restart libvirtd
sudo systemctl restart cockpit
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;- Puede usar &lt;code&gt;virt-manager&lt;/code&gt; redimensionar la VM: &lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1f9DyFsjAS7VyTx5ns2gnEsgksOOZktXSM6Hf1hGrsV1j9GV6mg5lZkU2hC-BPzMIB322zXqplwpjNCXujXOSNvwtzArS5eGUpY9vBnJbETzAheGQNdNpTclfXB5skWkGe_n-8D86cwa0qTP3dPWB5-WNcJ41Xq5fVnWu7eRnzapR330QdJJjAm5aMaMG/s1600/cockpit-auto.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="276" data-original-width="574" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1f9DyFsjAS7VyTx5ns2gnEsgksOOZktXSM6Hf1hGrsV1j9GV6mg5lZkU2hC-BPzMIB322zXqplwpjNCXujXOSNvwtzArS5eGUpY9vBnJbETzAheGQNdNpTclfXB5skWkGe_n-8D86cwa0qTP3dPWB5-WNcJ41Xq5fVnWu7eRnzapR330QdJJjAm5aMaMG/s1600/cockpit-auto.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Auto Redimensionar la VM&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;Cockpit Selector&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Al crear una VM, hay dos opciones:&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd1psEwPvc6NyCJ_sWG2V19Iac3Uq5Mlzmk0U-csMGfVshrDvnCwRUt-rch2PWGsSQdoiEIgvRzcdmJoiUkwMyF1_siXXY3kBzFZkrSfIXAyMRCKGjDUfeaKoXHDPc8HcGt5b5c-HFOTbYLmtkWAdeie3Akjz4u3qF4YZXmzImUiGRzisFRIVESzM-RGfN/s1600/cockpit-selector.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="460" data-original-width="746" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd1psEwPvc6NyCJ_sWG2V19Iac3Uq5Mlzmk0U-csMGfVshrDvnCwRUt-rch2PWGsSQdoiEIgvRzcdmJoiUkwMyF1_siXXY3kBzFZkrSfIXAyMRCKGjDUfeaKoXHDPc8HcGt5b5c-HFOTbYLmtkWAdeie3Akjz4u3qF4YZXmzImUiGRzisFRIVESzM-RGfN/s1600/cockpit-selector.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Debe elegir entre "system" o "user session"&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Para tener una idea de para qué sirve cada una, observemos esta tabla:&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS2fPshAM9hF12kiEdYftkKuYWYWG6U7JGI4ZN5JfY76XE1Ji1Mx6OmwB12eTkFUDDe84-ofFg6wT0L0sck8Iz8NgfrHAGaDJj1TdmI0yL5-wc1DhG2NEsACwco5MH2LvkEktu0_xm3Rpym10SdZFig1-6YMU3YrIi1dqwsl9UbPyXLEc9mINXXNa3Frsr/s1600/cockpit-selector-compare.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="450" data-original-width="551" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS2fPshAM9hF12kiEdYftkKuYWYWG6U7JGI4ZN5JfY76XE1Ji1Mx6OmwB12eTkFUDDe84-ofFg6wT0L0sck8Iz8NgfrHAGaDJj1TdmI0yL5-wc1DhG2NEsACwco5MH2LvkEktu0_xm3Rpym10SdZFig1-6YMU3YrIi1dqwsl9UbPyXLEc9mINXXNa3Frsr/s1600/cockpit-selector-compare.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Tabla comparativa entre &lt;code&gt;system&lt;/code&gt; y &lt;code&gt;user session&lt;/code&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Así que debe elegir para qué quiere la VM. Y un detalle importante es que en &lt;code&gt;system&lt;/code&gt; el disco virtual &lt;code&gt;.qcow2&lt;/code&gt; se crea con permisos root y en &lt;code&gt;user session&lt;/code&gt; no, además que los path por defecto son diferentes. Para el caso de virt-manager solo crea discos virtuales con permisos root. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Entonces, si no quiere trabajar con la opción &lt;code&gt;default&lt;/code&gt; que ofrece cockpit y quiere guardar el disco virtual en un path específico, deberá crear un nuevo grupo de almacenamiento y dentro el nuevo disco virtual para usarlo con tu nueva VM, pero se recomienda desactivar &lt;code&gt;default&lt;/code&gt;, ya que si no cockpit usará la ruta predeterminada segun el tipo de selección que realizó (ver tabla anterior).&amp;nbsp; &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Pero hay otro problema. Un disco virtual creado por defecto mediante Cockpit o virt-manager es técnicamente &lt;i data-end="92" data-start="84"&gt;
      &lt;a href="https://en.wikipedia.org/wiki/Sparse_file" target="_blank"&gt;sparse&lt;/a&gt;
    &lt;/i&gt; (disperso), ya que internamente almacena solo los bloques usados y no todo el espacio asignado. Sin embargo, durante la creación, incluso si no se activa la opción de “preasignar espacio”, estas interfaces gráficas no siempre trasladan correctamente esa configuración al sistema subyacente (libvirt y qemu-img). Esto genera un archivo que incluye bloques preasignados o metadata, lo que contradice la intención de un disco verdaderamente dinámico. El problema se manifiesta al intentar copiar dicho archivo a otra ubicación: el sistema de archivos, al no reconocer ni preservar la dispersión ( &lt;i data-end="696" data-start="686"&gt;sparsity&lt;/i&gt;) de manera automática, copia también los bloques vacíos o preasignados. Así, aunque el disco solo tenga 21 GB de datos reales, si fue creado con un tamaño lógico de 80 GB, la copia ocupará esos 80 GB completos. Esto no sucede con discos virtuales creados por VirtualBox, que sí mantienen la dispersión efectiva durante la copia. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;La mejor solución es &lt;a href="https://askubuntu.com/a/1298309/828892" target="_blank"&gt;crear el disco virtual por línea de comandos&lt;/a&gt;&amp;nbsp;(puede cambiar "preallocation=off" a&amp;nbsp;"on" para conservar el tamaño completo establecido en su creación). Ejemplo: &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;# Para crear:
qemu-img create -f qcow2 -o preallocation=off /path_to/disk.qcow2 20G
# Para convertir:
qemu-img convert -f qcow2 -O qcow2 -o preallocation=off /path_to/disk.qcow2 /path_to/newdisk.qcow2
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Una vez creada la VM, tanto en cockpit como en virt-manager debe decidir sobre lo siguiente:&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;- BIOS vs UEFI. Debe elegir con cuál va a trabajar. Por defecto ambos eligen BIOS. &lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWD_ikw1oeV-f2c37Y-PL14jsR8hTp2PHw-9wRwT-XpMxT75Zb5CVqtfzsqa0mhuBKtkhKxTrIITwOrcRR67ex98D7unOBIfAJQg2cjskNqKyR7tL9qJECH6pG2Qt5L6qxsNZDZupefSgzC6mFg0rca8_sHiytde_O6o2et5KsegWaIjsAQH5wg-SytOow/s1600/cockpit-uefi.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="1080" data-original-width="1920" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWD_ikw1oeV-f2c37Y-PL14jsR8hTp2PHw-9wRwT-XpMxT75Zb5CVqtfzsqa0mhuBKtkhKxTrIITwOrcRR67ex98D7unOBIfAJQg2cjskNqKyR7tL9qJECH6pG2Qt5L6qxsNZDZupefSgzC6mFg0rca8_sHiytde_O6o2et5KsegWaIjsAQH5wg-SytOow/s1600/cockpit-uefi.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;BIOS vs UEFI en virt-manager&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;- Si usa un SSD, agregue a la configuración de su disco virtual el parámetro &lt;code&gt;discard="unmap"&lt;/code&gt;. Ejemplo: &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;&amp;lt;disk type="file" device="disk"&amp;gt;
  &amp;lt;driver name="qemu" type="qcow2" discard="unmap"/&amp;gt;
  &amp;lt;source file="/path_to/w10.qcow2" index="3"/&amp;gt;
  &amp;lt;backingStore/&amp;gt;
  &amp;lt;target dev="vda" bus="virtio"/&amp;gt;
  &amp;lt;boot order="1"/&amp;gt;
  &amp;lt;alias name="virtio-disk0"/&amp;gt;
  &amp;lt;address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/&amp;gt;
&amp;lt;/disk&amp;gt;
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;- Tenga en cuenta que, en lugar de SATA puede elegir bus="virtio", que tiene más integración con entornos virtualizados. Vea la siguiente tabla comparativa:&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_K28Ks8NCTxP70EN-ZrtfrEm0M5Iq-SC0Rw9cmVyqvPLEL5cXUtfOh68-Mk2zqWsutmM4m1q07HZx1W_hm3S1-Yn4ZVjm8LHKD1l5lw9IwwwHrkF4vHvx0I4vFCrqCiKKJOtuDpgMnFypsGMtsHwz3yPJUbLP27CknL7fw1skb5mxUG0e6hIuPYF8h2GF/s1600/cockpit-table-sata-vs-virtio.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="487" data-original-width="806" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_K28Ks8NCTxP70EN-ZrtfrEm0M5Iq-SC0Rw9cmVyqvPLEL5cXUtfOh68-Mk2zqWsutmM4m1q07HZx1W_hm3S1-Yn4ZVjm8LHKD1l5lw9IwwwHrkF4vHvx0I4vFCrqCiKKJOtuDpgMnFypsGMtsHwz3yPJUbLP27CknL7fw1skb5mxUG0e6hIuPYF8h2GF/s1600/cockpit-table-sata-vs-virtio.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;SATA vs Virtio&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Pero, no reconocerá el disco duro virtual en el momento de la instalación de Windows, por tanto deberá descargar el driver&amp;nbsp;virtio-win.iso&amp;nbsp; &lt;a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.271-1/" target="_blank"&gt;AQUI&lt;/a&gt;, montar la ISO, e instalarlos. &lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwP02VWeBl5A3PAtAi79fCUs1V-jDRCN5Fjaz9LV3uNJyTRHYrejG03Q8M6AM6T4bg1KXKZQIg_H-CVGsgah9lMrtXR-TvoUVl9Tzc9lQlYD5gsugawwMcl1EDHnJb56T-QEbjk4feRzGHD5fBsFvzg1fmQH2CMrSD3jwI95El67T65mWrGhzG5_RIkpyx/s1600/cockpit-virtio.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="480" data-original-width="636" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwP02VWeBl5A3PAtAi79fCUs1V-jDRCN5Fjaz9LV3uNJyTRHYrejG03Q8M6AM6T4bg1KXKZQIg_H-CVGsgah9lMrtXR-TvoUVl9Tzc9lQlYD5gsugawwMcl1EDHnJb56T-QEbjk4feRzGHD5fBsFvzg1fmQH2CMrSD3jwI95El67T65mWrGhzG5_RIkpyx/s1600/cockpit-virtio.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Añadiendo driver virtio a Win 10&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;- Y, por último, si su máquina invitada es Windows, descargar e instalar en el invitado &lt;a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.271-1/"&gt;virtio-win-guest-tools.exe&lt;/a&gt;, que viene siendo como el Virtualbox Guest Additions o el&amp;nbsp;VMware Tools. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Y si es Linux:&lt;/div&gt;
  &lt;pre class="prettyprint"&gt;sudo apt install qemu-guest-agent
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Y si estás usando Cockpit en un servidor VMware:&lt;/div&gt;
  &lt;pre class="prettyprint"&gt;sudo apt install open-vm-tools
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;Compartir Carpetas con Host&lt;/b&gt;
    &lt;br /&gt;
    &lt;div style="text-align: justify;"&gt;Si su invitado es Windows, Virtio-FS no es compatible con este SO, pero, a pesar de esto, aún podrá compartir carpetas del host. Hay dos métodos, pero no podrá hacerlo con cockpit sino con &lt;code&gt;virt-manager&lt;/code&gt;: &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;Por Samba: Cree la carpeta en el host y compartala vía Samba&lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;Por WinFSP:&amp;nbsp;&lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;- Habilite la "memoria compartida" en &lt;code&gt;virt-manager&lt;/code&gt;. &lt;/div&gt;
    &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td style="text-align: center;"&gt;
            &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCGcQfFtEgcx9JDUZdicG1fmv2re8dE9fkEAlhCp2fqaGc71BBQB_kGwKKHJg5XpJ3Pm52jJwZljRokXtTgQolamfG5x5wJXLBolXZfkoxU9E7CbeBg0iz7R6VEuDOr34AJAWaw9Nopi8uhJaHJXwMXmAyABka9mBgr9XNZaq_xZPjfNyaFqeyZK39rSYj/s1600/cockpit-shared.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
              &lt;img alt="" border="0" data-original-height="221" data-original-width="751" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCGcQfFtEgcx9JDUZdicG1fmv2re8dE9fkEAlhCp2fqaGc71BBQB_kGwKKHJg5XpJ3Pm52jJwZljRokXtTgQolamfG5x5wJXLBolXZfkoxU9E7CbeBg0iz7R6VEuDOr34AJAWaw9Nopi8uhJaHJXwMXmAyABka9mBgr9XNZaq_xZPjfNyaFqeyZK39rSYj/s1600/cockpit-shared.png" /&gt;
            &lt;/a&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td class="tr-caption" style="text-align: center;"&gt;Habilitando shared memory&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;div style="text-align: justify;"&gt;- Haga clic en "Agregar hardware" en la parte inferior. Seleccione "filesystem" en el panel izquierdo de la ventana "Agregar nuevo hardware". Luego, seleccione "Driver=virtiofs" en la pestaña de detalles. Haga clic en "Examinar &amp;gt; Examinar local" y seleccione la ruta del host de su sistema Linux. En la ruta de destino, indique el nombre de la carpeta a compartir.&lt;/div&gt;
    &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td style="text-align: center;"&gt;
            &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiT0VfBxW3JbGfITaU9T0FgzQQTVyiWMoPLfhMCL51UZui5W33FvQSPStGFhrGatCvrLt8QTwtCjiGEijUlMsFV0TDdwd6TuXqFROCxVwnn97MDsVw1YzCb2cg5HBVjADrVwWPgbaGD07FUMU8LttkD-X3AMvmEO9-O5Ucy7UrvorJ1QCzbC4Pz3qBNUHR/s1600/cockpit-filesystem.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
              &lt;img alt="" border="0" data-original-height="768" data-original-width="1232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiT0VfBxW3JbGfITaU9T0FgzQQTVyiWMoPLfhMCL51UZui5W33FvQSPStGFhrGatCvrLt8QTwtCjiGEijUlMsFV0TDdwd6TuXqFROCxVwnn97MDsVw1YzCb2cg5HBVjADrVwWPgbaGD07FUMU8LttkD-X3AMvmEO9-O5Ucy7UrvorJ1QCzbC4Pz3qBNUHR/s1600/cockpit-filesystem.png" /&gt;
            &lt;/a&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td class="tr-caption" style="text-align: center;"&gt;Compartiendo carpeta de host en &lt;code&gt;virt-manager&lt;/code&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;div style="text-align: justify;"&gt;- Descargue e instale las aplicaciones&amp;nbsp; &lt;a href="https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe" target="_blank"&gt;spice-guest-tool&lt;/a&gt;,&amp;nbsp; &lt;a href="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/" target="_blank"&gt;virtio-win-guest-tools&lt;/a&gt;&amp;nbsp;y &lt;a href="https://github.com/winfsp/winfsp/releases/" target="_blank"&gt;WinFSP&lt;/a&gt;&amp;nbsp;en la VM de Windows (en virtualbox solo necesitamos uno: Guest Additions). Vea la tabla comparativa: &lt;/div&gt;
    &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td style="text-align: center;"&gt;
            &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKdm3U5jAL1H0b1lByl4VCmg-ljSVmfFGOEjcNnRQKDATbMvno4SAr_DhoCwH126CGFJ03Z78YSJrbCvcoxRCsCf0o9wWYaXjMuNqRWt-2WabuThxihWSgt7q43DvCW7O7DLkcJ_Npa0H7h-NiQxdR008-1xM-H0IVeKJdnt9GHd4qnSSMszrDcbSZJoXu/s1600/cockpit-table-spice-virtio-winfsp.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
              &lt;img alt="" border="0" data-original-height="291" data-original-width="811" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKdm3U5jAL1H0b1lByl4VCmg-ljSVmfFGOEjcNnRQKDATbMvno4SAr_DhoCwH126CGFJ03Z78YSJrbCvcoxRCsCf0o9wWYaXjMuNqRWt-2WabuThxihWSgt7q43DvCW7O7DLkcJ_Npa0H7h-NiQxdR008-1xM-H0IVeKJdnt9GHd4qnSSMszrDcbSZJoXu/s1600/cockpit-table-spice-virtio-winfsp.png" /&gt;
            &lt;/a&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td class="tr-caption" style="text-align: center;"&gt;comparativa spice-guest-tool, virtio-win-guest-tools, WinFSP&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;div style="text-align: justify;"&gt;- En "ejecutar" escriba &lt;code&gt;services.msc&lt;/code&gt; y pulse &lt;code&gt;Enter&lt;/code&gt;. En la lista de servicios encontrará uno llamado &lt;code&gt;VirtIO-FS Service&lt;/code&gt;. Doble clic, selecciona "automático" para que inicie con el sistema y reinicie la VM. &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;- Después del reiniciar, abra el Explorador de Windows y debería ver la carpeta compartida en Z.&lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;O también puede usar nuestro script &lt;a href="https://github.com/maravento/vault/blob/master/scripts/batch/vtools.bat"&gt;vtools&lt;/a&gt;&amp;nbsp;que se encarga de hacer este proceso. &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;Para el invitado Linux, puede hacerlo por Samba, o seleccione la carpeta a compartir en la interfaz gráfica de la máquina virtual, sección al final "Directorios compartidos" y luego, en el invitado, ejecute (cambie los nombres de las carpetas "my_shared_folder" del invitado y "my_host_folder" del host):&lt;/div&gt;
    &lt;pre class="prettyprint"&gt;sudo apt install virtiofsd libvirt-daemon-system qemu-system
mkdir my_shared_folder
sudo mount -t virtiofs my_host_folder ~/my_shared_folder
&lt;/pre&gt;
    &lt;div style="text-align: justify;"&gt;Otra característica muy interesante, que solo se muestra en virt-manager, es la opción "Compartibles (Shareable)", que se activa en nuestro disco duro virtual para que varias máquinas virtuales lo usen simultáneamente. Muy útil en entornos empresariales complejos, como clústeres de alta disponibilidad HA (Oracle RAC, Microsoft SQL Server Always On, o PostgreSQL con almacenamiento compartido, etc.), Clustered File Systems (GFS2, OCFS2), almacenamiento compartido en backend SAN o iSCSI, etc.&lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;
      &lt;b&gt;Nota Importante:&lt;/b&gt;&amp;nbsp;
    &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;Respecto al uso de discos SSD en máquinas virtuales. Al crear la VM, se recomienda seleccionar el bus &lt;code&gt;SCSI&lt;/code&gt;, ya que de lo contrario Windows podría identificar el disco como “Unrecognized” o “Unspecified”. No obstante, si estás utilizando un controlador &lt;code&gt;Red Hat VirtIO SCSI Disk Device&lt;/code&gt; y sabes que se trata de un SSD, puedes forzar el reconocimiento y activar el soporte TRIM manualmente con el siguiente comando: &lt;/div&gt;
    &lt;pre class="prettyprint"&gt; Optimize-Volume -DriveLetter C -ReTrim -Verbose 
&lt;/pre&gt;
    &lt;div style="text-align: justify;"&gt;
      &lt;b&gt;Redes Virtuales&lt;/b&gt;
    &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;Otra característica de virt-manager, que no tiene cockpit, es que podemos crear redes virtuales. Pulsamos en QEMU/KVM, luego en el menú Editar &amp;gt; Detalles de conexión y se abrirá una ventana. Vamos a la pestaña "Redes Virtuales" y ahí podemos crear nuestra red virtual en modo NAT, Enrutada, Abierta, Isolado o POOL-SR-IOV (Single Root I/O Virtualization), definir IPv4, DHCP, etc. &lt;/div&gt;
    &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td style="text-align: center;"&gt;
            &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUE8YzhzgxP-SElwzQHnZdNLJsEqZjAvMmV-KLs32rLBa6EhxXeoS2BMssAXquDzr7kvu15acWBQYvqeKaCmH7f7cfA87BSDQeZs2OS9FFHTG9wkjAoUf8E0Qamt80R_rjDxSLaJsaGttwa3vTeEMKnGQVmx3zCNsAP8DT4P29dYYVzznue2aM6DWThdnL/s1600/cockpit-virtual-network.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
              &lt;img alt="" border="0" data-original-height="629" data-original-width="796" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUE8YzhzgxP-SElwzQHnZdNLJsEqZjAvMmV-KLs32rLBa6EhxXeoS2BMssAXquDzr7kvu15acWBQYvqeKaCmH7f7cfA87BSDQeZs2OS9FFHTG9wkjAoUf8E0Qamt80R_rjDxSLaJsaGttwa3vTeEMKnGQVmx3zCNsAP8DT4P29dYYVzznue2aM6DWThdnL/s1600/cockpit-virtual-network.png" /&gt;
            &lt;/a&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td class="tr-caption" style="text-align: center;"&gt;Creación de una Red Virtual&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;div style="text-align: justify;"&gt;
      &lt;b&gt;Bonding&lt;/b&gt;
    &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;Cockit también permite "agregación de enlaces" (bonding) en 7 modos (no confundir con "balanceo de carga"). Puede consultarlos los modos&amp;nbsp; &lt;a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_systems_using_the_rhel_8_web_console/configuring-network-bonds-using-the-web-console_system-management-using-the-rhel-8-web-console" target="_blank"&gt;AQUÍ&lt;/a&gt;. &lt;/div&gt;
    &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td style="text-align: center;"&gt;
            &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIwds7wibR3_vP-p-Fp8HM7A1YJtwWYp2K5W_SHUPomKHCKjFJZKUFBej51aJa1smJ9V8V8FCZGU7B7LIICKPLLUYFRGKXDdtTwdbPXkyZhqKz8eUj4QriGr9YHC3hUTbmwwOyjXVuSeZixGgFog_-B_9-Khk_39IhDdwafdrJZhqV7_-3F1zPLB_l6A/s1600/cockpit-loadbalancer.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
              &lt;img alt="" border="0" data-original-height="807" data-original-width="1617" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIwds7wibR3_vP-p-Fp8HM7A1YJtwWYp2K5W_SHUPomKHCKjFJZKUFBej51aJa1smJ9V8V8FCZGU7B7LIICKPLLUYFRGKXDdtTwdbPXkyZhqKz8eUj4QriGr9YHC3hUTbmwwOyjXVuSeZixGgFog_-B_9-Khk_39IhDdwafdrJZhqV7_-3F1zPLB_l6A/s1600/cockpit-loadbalancer.png" /&gt;
            &lt;/a&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td class="tr-caption" style="text-align: center;"&gt;Bond&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;div style="text-align: justify;"&gt;
      &lt;u&gt;Aclaratoria&lt;/u&gt;:&amp;nbsp;La agregación de enlaces (link aggregation) y el balanceo de carga (load balancing) son dos técnicas relacionadas, pero distintas, que se utilizan para mejorar la eficiencia y la disponibilidad de las redes. A continuación una tabla comparativa:
    &lt;/div&gt;
    &lt;table border="1" cellpadding="5" cellspacing="0"&gt;
      &lt;thead&gt;
        &lt;tr&gt;
          &lt;th&gt;Aspecto&lt;/th&gt;
          &lt;th&gt;Link Aggregation (LA)&lt;/th&gt;
          &lt;th&gt;Trunking (VLAN)&lt;/th&gt;
          &lt;th&gt;Balanceo de Carga&lt;/th&gt;
        &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td&gt;Propósito principal&lt;/td&gt;
          &lt;td&gt;Aumentar capacidad y redundancia entre dispositivos&lt;/td&gt;
          &lt;td&gt;Transportar múltiples VLANs por un mismo enlace físico&lt;/td&gt;
          &lt;td&gt;Distribuir tráfico entre múltiples rutas/redes&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td&gt;Número de enlaces físicos&lt;/td&gt;
          &lt;td&gt;Múltiples (2 o más)&lt;/td&gt;
          &lt;td&gt;Normalmente, uno (aunque puede ir sobre LA)&lt;/td&gt;
          &lt;td&gt;Múltiples conexiones WAN o rutas&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td&gt;Capa OSI&lt;/td&gt;
          &lt;td&gt;Capa 2 (Enlace de datos)&lt;/td&gt;
          &lt;td&gt;Capa 2 (Enlace de datos)&lt;/td&gt;
          &lt;td&gt;Capa 3 (Red) o superior (L4/L7)&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td&gt;Unidad de trabajo&lt;/td&gt;
          &lt;td&gt;Flujos individuales distribuidos entre interfaces físicas&lt;/td&gt;
          &lt;td&gt;Etiquetado de tramas para transportar varias VLANs&lt;/td&gt;
          &lt;td&gt;Flujos distribuidos según reglas (IP, puerto, tráfico, etc.)&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td&gt;Tecnología típica&lt;/td&gt;
          &lt;td&gt;LACP, EtherChannel, NIC bonding&lt;/td&gt;
          &lt;td&gt;IEEE 802.1Q (VLAN tagging)&lt;/td&gt;
          &lt;td&gt;Policy-based routing, round robin, weighted routing, SD-WAN&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td&gt;Requiere configuración en ambos extremos&lt;/td&gt;
          &lt;td&gt;Sí&lt;/td&gt;
          &lt;td&gt;Sí&lt;/td&gt;
          &lt;td&gt;No necesariamente (puede ser unidireccional en routers/firewalls)&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td&gt;Ventaja principal&lt;/td&gt;
          &lt;td&gt;Aumenta ancho de banda en LAN y añade tolerancia a fallos&lt;/td&gt;
          &lt;td&gt;Segmentación lógica de red sin cables adicionales&lt;/td&gt;
          &lt;td&gt;Aprovecha múltiples conexiones a Internet o redes&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td&gt;Casos de uso comunes&lt;/td&gt;
          &lt;td&gt;Switch ↔ Switch, Switch ↔ Servidor, NAS con múltiples NICs&lt;/td&gt;
          &lt;td&gt;Switch ↔ Switch, Switch ↔ Router o servidor con VLANs&lt;/td&gt;
          &lt;td&gt;Routers con varias WAN, servidores con múltiples interfaces externas&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td&gt;¿Suma anchos de banda para un solo flujo?&lt;/td&gt;
          &lt;td&gt;❌ No (a menos que se use MPTCP u otra técnica avanzada)&lt;/td&gt;
          &lt;td&gt;❌ No (es segmentación lógica, no aumento de ancho de banda)&lt;/td&gt;
          &lt;td&gt;❌ No (a menos que se use bonding o reconstrucción de sesión)&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td&gt;¿Puede coexistir con otros?&lt;/td&gt;
          &lt;td&gt;✅ Sí, puede combinarse con Trunking (trunk sobre LA)&lt;/td&gt;
          &lt;td&gt;✅ Sí, puede viajar sobre enlaces agregados (trunk sobre LA)&lt;/td&gt;
          &lt;td&gt;✅ Sí, pero debe manejarse cuidadosamente para evitar rutas conflictivas&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;div&gt;
      &lt;div&gt;Tenga en cuenta que si va a usar agregación de enlaces ("añadiendo" o "aggregate"), el objetivo es unir dos interfaces físicas Ethernet en una interfaz virtual para aumentar el ancho de banda o la redundancia. Para ello, debe contar con un switch compatible con el protocolo IEEE 802.3ad (LACP) y los puertos que elija deben ser secuenciales (1, 2, etc...), en dependencia de la cantidad de NICs que tenga y quiera unir en una interfaz virtual. Además, es importante comprender estos conceptos:&lt;/div&gt;
      &lt;div&gt;- LAG (Link Aggregation Group): conjunto de enlaces físicos que funcionan como un enlace lógico único.&lt;/div&gt;
      &lt;div&gt;- LACP (Link Aggregation Control Protocol): protocolo estándar que automatiza la creación y gestión de LAGs, incluyendo la negociación y el monitoreo del estado de los enlaces.&lt;/div&gt;
      &lt;div&gt;En Cockpit, deberá elegir el modo 802.3ad para la agregación y puede activar la monitorización miimon (MII) para supervisar el estado de los enlaces, aunque LACP realiza monitoreo propio.&amp;nbsp;&lt;/div&gt;
      &lt;div&gt;Por razones de compatibilidad, se recomienda usar la MAC de la primera interfaz física que forma parte del grupo.&lt;/div&gt;
      &lt;div&gt;Si su objetivo es balancear la carga de servicios o aplicaciones en lugar de unir interfaces físicas, recomendamos utilizar soluciones específicas de balanceo de carga a nivel de aplicación, como &lt;a href="https://www.haproxy.com/" target="_blank"&gt;HAProxy&lt;/a&gt;, o balanceadores de carga por hardware, que son más efectivos para ese propósito. &lt;/div&gt;
    &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;Cockpit también se puede realizar monitoreo del canal:&lt;/div&gt;
    &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td style="text-align: center;"&gt;
            &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1-h9wnC-XTej98C97NnTVcX9q_Hl3S-QmcYeeAk33_CbnZOVDviOQh7qAdm1vD1Vaszd3prYMRGfcyfYMjiXSF6f4BJgMDqoWXOpv5lpO5URDV4nevcAWWJWAsrHMUksdoZC9bjfPysaXN6gK9vqGgs0D9F_HFn82KwuZQdJQYc5QBmHdDGacJJiFnQ/s1600/cockpit-canal.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
              &lt;img alt="" border="0" data-original-height="543" data-original-width="1126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1-h9wnC-XTej98C97NnTVcX9q_Hl3S-QmcYeeAk33_CbnZOVDviOQh7qAdm1vD1Vaszd3prYMRGfcyfYMjiXSF6f4BJgMDqoWXOpv5lpO5URDV4nevcAWWJWAsrHMUksdoZC9bjfPysaXN6gK9vqGgs0D9F_HFn82KwuZQdJQYc5QBmHdDGacJJiFnQ/s1600/cockpit-canal.png" /&gt;
            &lt;/a&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td class="tr-caption" style="text-align: center;"&gt;Canal&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
    &lt;div style="text-align: justify;"&gt;Cockpit usa un programa externo para firewall llamado&amp;nbsp; &lt;a href="https://cockpit-project.org/guide/latest/feature-firewall" target="_blank"&gt;firewalld&lt;/a&gt;,&amp;nbsp;pero se alargaría demasiado el tema y en lo personal preferimos y recomendamos&amp;nbsp; &lt;a href="https://www.netfilter.org/projects/iptables/index.html" target="_blank"&gt;iptables&lt;/a&gt;. &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;
      &lt;b&gt;Lo Malo&lt;/b&gt;
    &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;Cockpit tiene muchas cosas buenas, pero una extremadamente mala y es que no soporta&amp;nbsp;networkd (systemd-networkd). Entonces, si trabajas con NetworkManager como rendered y tu equipo por ejemplo Ubuntu/Debian Desktop, esto no debería ser un problema, pero si usas un servidor con sistema operativo tipo server e interfaces declaradas en netplan, olvídate de Cockpit. En este escenario, si lo usas, creará un caos en tu configuración de red. Para mayor información visite Issue &lt;a href="https://github.com/cockpit-project/cockpit/issues/22534" target="_blank"&gt;22534&lt;/a&gt;. &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;En fin; Cockpit tiene un montón de cosas más, muy relevantes para los sysadmin y otras no tanto. Cualquier duda consulten la &lt;a href="https://cockpit-project.org/guide/latest/" target="_blank"&gt;documentación oficial&lt;/a&gt;. &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;
      &lt;br /&gt;
    &lt;/div&gt;
    &lt;div style="text-align: justify;"&gt;Puede descargar nuestro script de instalación para VMs Windows: Spice + Virtio + WinFsp as a Service (QEMU/KVM) en&amp;nbsp; &lt;a href="https://github.com/maravento/vault/tree/master/scripts" target="_blank"&gt;Vault/Scripts&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/5576979146388129415" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/5576979146388129415" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2022/11/cockpit.html" rel="alternate" title="Cockpit + virt-manager" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfqJ-4elyHt63-yyws5LaSDF4CDF4eq8GyEzHwKpn2iEolGqMePai8EmiLMiggTePLKHv0INRWHpXFEoZeGKZSCKJUi-EWKmP8XsMVawc-17l2Po60LcMxiLGZL-4L9a0ItVWNzU8G_ZaTelYW9rOV89gsHuMI6s8vDePrv5U-AvqUacZoV8dNAHkrnQ/s72-c/cockpit.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-1018656736163621518</id><published>2022-10-11T08:57:00.028-04:00</published><updated>2025-08-18T21:51:35.893-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="Virtual"/><category scheme="http://www.blogger.com/atom/ns#" term="virtualbox"/><title type="text">Virtualbox 7</title><content type="html"> &lt;div class="separator" style="clear: both; text-align: center;"&gt;
   &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPBQTQS2wR-4Yo2rW56u7poUX3ELGOGDg8X7mEX3nHulEa4LLr6ocesdSHe1aA4J2emZnOT9SEU2MYjTFxw_BR4-886vyse-UBxCM018QQ-UQ7lPxu_vNcnLJi6yfrxp8NsSdgyxzS9xoIeVsg53ZjGonEoz7ZUm08leleqB0XIN0q7M6-RlSsPLeVsA/s640/virtualbox7-1.png" style="margin-left: 1em; margin-right: 1em;"&gt;
     &lt;img border="0" data-original-height="506" data-original-width="640" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPBQTQS2wR-4Yo2rW56u7poUX3ELGOGDg8X7mEX3nHulEa4LLr6ocesdSHe1aA4J2emZnOT9SEU2MYjTFxw_BR4-886vyse-UBxCM018QQ-UQ7lPxu_vNcnLJi6yfrxp8NsSdgyxzS9xoIeVsg53ZjGonEoz7ZUm08leleqB0XIN0q7M6-RlSsPLeVsA/s320/virtualbox7-1.png" width="320" /&gt;
   &lt;/a&gt;
 &lt;/div&gt;
 &lt;div style="text-align: justify;"&gt;VirtualBox 7 ha sido liberado, con nuevo soporte de aceleración 3D basado en DirectX 11, soporte para cifrado completo de la VM, secure boot, TPM 1.2 y 2.0 virtuales, soporte de los controladores de USB EHCI y XHCI, etc. etc. etc. (lea el&amp;nbsp; &lt;a href="https://www.virtualbox.org/wiki/Changelog-7.0#v00" target="_blank"&gt;changelog&lt;/a&gt;) &lt;/div&gt;
 &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
   &lt;tbody&gt;
     &lt;tr&gt;
       &lt;td style="text-align: center;"&gt;
         &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg98yeDpVPA5quumsafHj3mIqr8syKFOpH33AvcZQ1jb1W8DVXKSZvz5JNCLbSAbh7hvn2zHk-SwpRvH-ir1Frcgx25gynffS1Dqp0M8_2f6IACE3WoJAeOzWCuNETROkZa4cZyY2GHT4kjF-PPkzHiKcg3IvOwh_JsHXm5gFi9Zxj7LhK9iYqIjgy36Q/s1600/virtualbox7-2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
           &lt;img alt="" border="0" data-original-height="650" data-original-width="889" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg98yeDpVPA5quumsafHj3mIqr8syKFOpH33AvcZQ1jb1W8DVXKSZvz5JNCLbSAbh7hvn2zHk-SwpRvH-ir1Frcgx25gynffS1Dqp0M8_2f6IACE3WoJAeOzWCuNETROkZa4cZyY2GHT4kjF-PPkzHiKcg3IvOwh_JsHXm5gFi9Zxj7LhK9iYqIjgy36Q/s1600/virtualbox7-2.png" /&gt;
         &lt;/a&gt;
       &lt;/td&gt;
     &lt;/tr&gt;
     &lt;tr&gt;
       &lt;td class="tr-caption" style="text-align: center;"&gt;Virtualbox 7&lt;/td&gt;
     &lt;/tr&gt;
   &lt;/tbody&gt;
 &lt;/table&gt;
 &lt;div style="text-align: justify;"&gt;Algo interesante es incorpora un monitor de recursos, que puede ser bastante útil:&lt;/div&gt;
 &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
   &lt;tbody&gt;
     &lt;tr&gt;
       &lt;td style="text-align: center;"&gt;
         &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Q6omMzS8uFLt-ggldV01ToWpi8udckF2yD9ESUWHGraPzHRnkaIgfYLqs4bENjhMwktcHkZMKxfbeVqk84omZuxC-iJMaGHnmTlTpFNkSHMQNUPH_q-QA4_xztzBy-3HTf6VbM2XP5HiRY52YYzR24x_X1ubQwoOU8QiQGqKgnAK4Xr5rUj9iO4vqQ/s1600/virtualbox-3.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
           &lt;img alt="" border="0" data-original-height="879" data-original-width="1222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Q6omMzS8uFLt-ggldV01ToWpi8udckF2yD9ESUWHGraPzHRnkaIgfYLqs4bENjhMwktcHkZMKxfbeVqk84omZuxC-iJMaGHnmTlTpFNkSHMQNUPH_q-QA4_xztzBy-3HTf6VbM2XP5HiRY52YYzR24x_X1ubQwoOU8QiQGqKgnAK4Xr5rUj9iO4vqQ/s1600/virtualbox-3.png" /&gt;
         &lt;/a&gt;
       &lt;/td&gt;
     &lt;/tr&gt;
     &lt;tr&gt;
       &lt;td class="tr-caption" style="text-align: center;"&gt;monitor de recursos&lt;/td&gt;
     &lt;/tr&gt;
   &lt;/tbody&gt;
 &lt;/table&gt;
 &lt;div style="text-align: justify;"&gt;Para Windows, como siempre, es sencillo. &lt;a href="https://www.virtualbox.org/wiki/Downloads" target="_blank"&gt;Descargar&lt;/a&gt;, instalar, siguiente, siguiente. Para linux, recomendamos hacerlo por línea de comandos, y hemos preparado un script que funciona en Ubuntu 20.04/22.04. &lt;/div&gt;
 &lt;div style="text-align: justify;"&gt;
   &lt;b&gt;Purga&lt;/b&gt;
 &lt;/div&gt;
 &lt;div style="text-align: justify;"&gt;Antes de usarlo, asegúrese de eliminar cualquier rastro de versiones anteriores, para evitar incompatibilidades. Por tanto, se recomienda encarecidamente que haga un backup de su disco virtual antes de ejecutar el siguiente script, ya que elimina las carpetas y configuraciones, incluyendo la del disco (por seguridad hemos comentado la línea).&lt;/div&gt;
 &lt;pre class="prettyprint"&gt;sudo ./purge_vbox.sh
&lt;/pre&gt;
 &lt;div style="text-align: justify;"&gt;Con el contenido:&lt;/div&gt;
 &lt;pre class="prettyprint"&gt;#!/bin/bash
echo "Purge Virtualbox..."
vboxmanage list runningvms | sed -r 's/.*\{(.*)\}/\1/' | xargs -L1 -I {} VBoxManage controlvm {} savestate
ps ax | grep -P 'vboxwebbsrv|VirtualBox|Vbox' | awk '{print $1}' | xargs kill -9 &amp;amp;&amp;gt; /dev/null
systemctl stop vboxweb-service.service &amp;amp;&amp;gt; /dev/null
service vboxdrv stop &amp;amp;&amp;gt; /dev/null
VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
apt-get -y autoremove --purge $(echo $vboxversion)
/opt/VirtualBox/uninstall.sh &amp;amp;&amp;gt; /dev/null
apt-get remove --purge virtualbox-guest-utils virtualbox-dkms virtualbox-guest-x11 virtualbox virtualbox-guest-additions-iso virtualbox-ext-pack virtualbox-source
# delete folders and files
rm -rf /etc/vbox /opt/VirtualBox /usr/lib/virtualbox /etc/default/virtualbox /etc/init.d/virtualbox /etc/apt/sources.list.d/virtualbox* &amp;amp;&amp;gt; /dev/null
# delete virtual disk config
#rm -rf ~/.config/VirtualBox
echo "Done"&amp;nbsp;&lt;/pre&gt;
 &lt;div style="text-align: justify;"&gt;
   &lt;b&gt;Instalación&lt;/b&gt;
 &lt;/div&gt;
 &lt;div style="text-align: justify;"&gt;Y ahora la instalación:&lt;/div&gt;
 &lt;pre class="prettyprint"&gt;sudo ./setup_vbox.sh&lt;/pre&gt;
 &lt;div style="text-align: justify;"&gt;Con el contenido:&lt;/div&gt;
 &lt;pre class="prettyprint"&gt;#!/bin/bash
echo "Virtualbox 7.0 install..."
# Download and install .asc
wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | gpg --dearmor | tee /usr/share/keyrings/virtualbox.gpg &amp;amp;&amp;gt; /dev/null
# add repo
echo deb [arch=amd64 signed-by=/usr/share/keyrings/virtualbox.gpg] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib | tee /etc/apt/sources.list.d/virtualbox.list
apt update
# install vbox
apt-get -y install linux-headers-$(uname -r) build-essential gcc make perl dkms bridge-utils
apt-get -y install virtualbox-7.0
dpkg --configure -a
apt-get -f -y install
# install Extension Pack
export VBOX_VER=$(VBoxManage --version | awk 'END {print $1}' | cut -d 'r' -f 1)
wget -c http://download.virtualbox.org/virtualbox/$VBOX_VER/Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VER.vbox-extpack
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-$VBOX_VER.vbox-extpack
# configure
usermod -a -G vboxusers $USER
update-grub
/sbin/vboxconfig
echo "Done"
&lt;/pre&gt;
 &lt;div style="text-align: justify;"&gt;Y es todo.&lt;/div&gt;
 &lt;div style="text-align: justify;"&gt;PD: Si tiene problemas con el redimensionado de la VM (en especial si usa Ubuntu Mate), recuerde desactivar la casilla "Auto Capture Keyboard / Autocapturar teclado". Para mayor información, consulte nuestro post &lt;a href="https://www.maravento.com/2022/04/virtualbox-mover-o-redimensionar-guest.html" target="_blank"&gt;Virtualbox: Mover o Redimensionar Guest VM&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Actualización 2025&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para actualizar a la versión 7.2, solo cambie el 7.0 por el 7.2. Y a partir del kernel 6.2, se puede presentar el error "VirtualBox can't operate in VMX root mode".&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Esto sucede porque VirtualBox usa su propio motor de virtualización (VT-x / AMD-V) y KVM/QEMU (el hipervisor nativo de Linux) también engancha las instrucciones de virtualización. Entonces, si el módulo de KVM está cargado, VirtualBox no puede entrar en “VMX root mode” y te suelta el error.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;&lt;b&gt;Solución&lt;/b&gt;:&lt;div&gt;
&lt;pre class="prettyprint"&gt;sudo nano /etc/default/grub
# Y reemplaza la siguiente línea:
# Nota: Si quieres boot con logo y mensajes ocultos:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash kvm.enable_virt_at_load=0"
# Nota: si quieres boot solo texto:
GRUB_CMDLINE_LINUX_DEFAULT="kvm.enable_virt_at_load=0"
# Guarda los cambios, actualiza grub y reinicia:
sudo update-grub
sudo reboot
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/1018656736163621518" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/1018656736163621518" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2022/10/virtualbox-70-via-bash.html" rel="alternate" title="Virtualbox 7" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPBQTQS2wR-4Yo2rW56u7poUX3ELGOGDg8X7mEX3nHulEa4LLr6ocesdSHe1aA4J2emZnOT9SEU2MYjTFxw_BR4-886vyse-UBxCM018QQ-UQ7lPxu_vNcnLJi6yfrxp8NsSdgyxzS9xoIeVsg53ZjGonEoz7ZUm08leleqB0XIN0q7M6-RlSsPLeVsA/s72-c/virtualbox7-1.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-4983081407740644672</id><published>2022-10-01T18:20:00.156-04:00</published><updated>2025-11-13T17:48:10.702-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apache"/><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><category scheme="http://www.blogger.com/atom/ns#" term="Monitor"/><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><category scheme="http://www.blogger.com/atom/ns#" term="Proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="Squid"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><title type="text">Lightsquid</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjORR7IH66jDEWMWQUCktdertG-Nu--mmz6oxN2YP4X3L8rbdOM9ZT_PeHDqY-q3noRI2C4vqGhQErv8Ag6m5cp7ibYNhSnET5sbsmF8iQVBioLA9V4w0YIvCLpr3FR-LMddQa_zeKphjzoVpa5AB_SKTZ9TCpTJZDkfZxTPPGMkuQogf5UQMOg32WtYQ/s1101/lightsquid-index.png" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="719" data-original-width="1101" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjORR7IH66jDEWMWQUCktdertG-Nu--mmz6oxN2YP4X3L8rbdOM9ZT_PeHDqY-q3noRI2C4vqGhQErv8Ag6m5cp7ibYNhSnET5sbsmF8iQVBioLA9V4w0YIvCLpr3FR-LMddQa_zeKphjzoVpa5AB_SKTZ9TCpTJZDkfZxTPPGMkuQogf5UQMOg32WtYQ/s320/lightsquid-index.png" width="320" /&gt;
    &lt;/a&gt;
  &lt;/div&gt;Hoy traemos otra entrega más de nuestra serie &lt;a href="https://www.maravento.com/search/label/Monitor" target="_blank"&gt;monitor&lt;/a&gt;. En el pasado, abordamos algunas de estas herramientas de monitoreo, tales como&amp;nbsp; &lt;a href="https://www.maravento.com/2014/03/network-monitor.html" target="_blank"&gt;Sqstat, Sarg, Nessus, Iptraf-NG, NetHogs&lt;/a&gt;, &lt;a href="https://www.maravento.com/2015/04/control-de-acceso.html" target="_blank"&gt;Nmap, Zenmap, xsltproc&lt;/a&gt;, &lt;a href="https://www.maravento.com/2019/03/ntopng.html" target="_blank"&gt;NtopNG&lt;/a&gt;, &lt;a href="https://www.maravento.com/2021/06/netdata.html" target="_blank"&gt;NetData&lt;/a&gt;, &lt;a href="https://www.maravento.com/2021/08/bandwidthd.html" target="_blank"&gt;BandwidthD&lt;/a&gt;&amp;nbsp;(y&amp;nbsp;faltan un montón, lo cual es imposible abordarlas todas). Y ahora le tocó el turno a&amp;nbsp; &lt;a href="https://lightsquid.sourceforge.net/" target="_blank"&gt;lightsquid&lt;/a&gt;.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Antes de comenzar&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;a href="https://lightsquid.sourceforge.net/" target="_blank"&gt;lightsquid&lt;/a&gt;&amp;nbsp;es un aplicativo que trabaja exclusivamente con &lt;a href="http://www.squid-cache.org/" target="_blank"&gt;Squid-Cache&lt;/a&gt;, extrayendo de&amp;nbsp; &lt;code&gt;access.log&lt;/code&gt;&amp;nbsp;los datos necesarios para mostrar las estadísticas del tráfico. Por lo anterior, si algunas direcciones IP de su red local no pasan por el Squid, entonces no aparecerán en los reportes.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Instalación&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;La instalación es sencilla. Pero primero las dependencias. Asumiendo que ya tenga instalado y configurado &lt;code&gt;apache2&lt;/code&gt;, y &lt;code&gt;squid&lt;/code&gt;, instale los siguientes paquetes: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt install -y libcgi-session-perl libgd-gd2-perl
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y el paquete lightsquid: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt install lightsquid
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Que instalará la versión 1.8-7, sin embargo, esta versión ya no funciona y fue descontinuada en 2009. Afortunadamente, en 2021, un usuario llamado finisky publicó una actualización con correcciones en GitHub, renombrándola como 1.8.1:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;git clone https://github.com/finisky/lightsquid-1.8.1
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Sin embargo, aún padece de un bug. En realidad es un "warning" que llena el log de error de apache:&amp;nbsp;&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1F_1H0VMu2cYUOZOJfJMj-8Ie7KlZ0rki1DtLsioQwfdg7Y71eu6FCc0Z0nDCTa1yJuof77WWxXp_dPTVNt37otuBkhe51nu4dZzFyXl_ZFuIJMEOoy9z_2_HrtAjhc1MGQWzhjlELkyPXRe4RrmNLoPwsqx7oWxnijx0vW1SVdTNEZZuzb5SRIAHkw/s1600/lightsquid-warning.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="543" data-original-width="1482" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1F_1H0VMu2cYUOZOJfJMj-8Ie7KlZ0rki1DtLsioQwfdg7Y71eu6FCc0Z0nDCTa1yJuof77WWxXp_dPTVNt37otuBkhe51nu4dZzFyXl_ZFuIJMEOoy9z_2_HrtAjhc1MGQWzhjlELkyPXRe4RrmNLoPwsqx7oWxnijx0vW1SVdTNEZZuzb5SRIAHkw/s1600/lightsquid-warning.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;CGI::param Warning&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;La respuesta corta es que no es un bug, sino una llamada de advertencia, debido a que lightsquid una la biblioteca CGI, que ha sido declarada obsoleta por Perl, que recomienda usar Plack o PSGI, opciones más seguras y actuales.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;La explicación larga la puede encontrar publicada en el &lt;a href="https://github.com/finisky/lightsquid-1.8.1/issues/1#issuecomment-1492673717" target="_blank"&gt;Issue del repositorio&lt;/a&gt;, pero a la fecha de publicación de este post, no han adoptado la propuesta de corrección y/o actualizado el repo.&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Entonces, ofrecemos una descarga alternativa con las correcciones en el siguiente enlace de nuestro repositorio &lt;a href="https://github.com/maravento/gateproxy" target="_blank"&gt;Gateproxy&lt;/a&gt;: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;wget https://raw.githubusercontent.com/maravento/gateproxy/master/conf/monitor/lightsquid-1.8.1.tar.gz
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Lightsquid trae por defecto un tema llamado "base":&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU2Cnv3ZeM-Myem9rA0Cg1PoEJsoFWx91voJzWyV7kRHZQ757Nl5pWz_4qM2DwDtg3_prH0NOhq1hvexXYUoB3zmSj3jamp2kEsG9QUQIG8BuHewE9ElvvvHfCesatBbUEd-lm03HEIjM-GPRTt4f644frCOpcDXOsvFfnhqevAVvYyMkRkeHFfpQpZA/s1600/lightsquid-basetheme.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="578" data-original-width="1260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU2Cnv3ZeM-Myem9rA0Cg1PoEJsoFWx91voJzWyV7kRHZQ757Nl5pWz_4qM2DwDtg3_prH0NOhq1hvexXYUoB3zmSj3jamp2kEsG9QUQIG8BuHewE9ElvvvHfCesatBbUEd-lm03HEIjM-GPRTt4f644frCOpcDXOsvFfnhqevAVvYyMkRkeHFfpQpZA/s1600/lightsquid-basetheme.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Tema "Base"&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Que no es precisamente el más moderno o bonito, pero en nuestra versión, trae por defecto el tema "metro" (imagen del encabezado del post), cortesía del equipo de &lt;a href="https://www.sysadminsdecuba.com/" target="_blank"&gt;sysadmindecuba.com&lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Una vez descargado, lo descomprimimos:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;tar -xf lightsquid-1.8.1.tar.gz
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Si quiere regresar al tema base, edite el archivo &lt;code&gt;lightsquid.cfg&lt;/code&gt; y elija la línea del tema con el que va a trabajar (base o metro) y la descomenta. Por defecto: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;#$templatename        ="base";
$templatename        ="metro_tpl";
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Copiamos la carpeta descomprimida al nuevo directorio:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo mkdir -p /var/www/lightsquid
sudo cp -f -R lightsquid-1.8.1/* /var/www/lightsquid/
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Creamos el virtual host:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo touch /etc/apache2/conf-available/lightsquid.conf
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Con el siguiente contenido, asumiendo que su red local es de Clase C - RFC 1918 local private network (LAN) y comienza por 192.168. Caso contrario, ajuste el parámetro y guarde cambios:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;Alias /lightsquid/ /var/www/lightsquid/
   &amp;lt;Location "/lightsquid/"&amp;gt;
   Options +ExecCGI
   AddHandler cgi-script .cgi .pl
   Require local
   # reemplace la dirección IP y mascara por la de su red local
   Require ip 192.168.1.0/24
&amp;lt;/Location&amp;gt;
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Establecemos los permisos:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo chmod -R 775 /var/www/lightsquid/
sudo chown -R www-data:www-data /var/www/lightsquid
sudo chmod +x /var/www/lightsquid/*.{cgi,pl}
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Activamos &lt;code&gt;cgid&lt;/code&gt;, &lt;code&gt;lightsquid&lt;/code&gt; y reiniciamos &lt;code&gt;apache2&lt;/code&gt;: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo a2enmod cgid &amp;amp;&amp;amp; sudo a2enconf lightsquid &amp;amp;&amp;amp; sudo systemctl restart apache2.service
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: para deshabilitarlos
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo a2dismod cgid &amp;amp;&amp;amp; sudo a2disconf lightsquid &amp;amp;&amp;amp; sudo systemctl restart apache2.service
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Asumiendo que tenemos Squid funcionando y nuestro archivo &lt;code&gt;access.log&lt;/code&gt; tiene registros del tráfico de nuestra red local, ejecutaremos el siguiente comando para generar las primeras estadísticas: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo /var/www/lightsquid/lightparser.pl
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para agregar los nombres de host personalizados por IP (o NetBIOS Name): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;nano /var/www/lightsquid/realname.cfg
# agregue las IPs con lo nombres de usuarios
192.168.1.1	Router
192.168.1.2	Cliente1
192.168.1.3	Contador
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;También puede obtener el NetBIOS Name rastreando la red con nbtscan, pero sin garantías, ya que depende de muchos factores:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt-get install nbtscan
sudo nbtscan 192.168.1.0/24
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y para excluir direcciones IP del reporte:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;nano /var/www/lightsquid/skipuser.cfg
# agregue las IPs a excluir del reporte
192.168.1.1
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Algunos Reportes&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Por años:&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlBgSPLX08NWL5lKPMwaMofT6twYBHzCpyOQkiHSL_bW7PNWCxwEvQk-VJqG68UmBmgrbb6MINTcvc_W9_MecnYek7xn1LBkzgctoJrHUJ2n0SxX6pYmpnggRz48bQvF66kKRwHpo-R2RPtBb8Om6DSx6ClnbIRRaYdGqp1OfbqewiJxkjypOWOiRaw/s1600/lightsquid-year.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="766" data-original-width="1240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlBgSPLX08NWL5lKPMwaMofT6twYBHzCpyOQkiHSL_bW7PNWCxwEvQk-VJqG68UmBmgrbb6MINTcvc_W9_MecnYek7xn1LBkzgctoJrHUJ2n0SxX6pYmpnggRz48bQvF66kKRwHpo-R2RPtBb8Om6DSx6ClnbIRRaYdGqp1OfbqewiJxkjypOWOiRaw/s1600/lightsquid-year.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Reporte por años&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Por dirección IP:&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6OETdR8KLRlni6eDf-l8W0dh7KwswIVwZKYn2JJQTpaq9a4rgOod3SFyLcNU2jQJX2ONbfA9pJE8jUk_9Y3CaQGleJJ7vPVuVpPl76DmwO0FLh8La2eUnW0NrZo_XjUCaS6LlkafSVy04pUek16gAwqjYyftv5Yy_H8IKCC9pYArrtd1LDavmSikGkQ/s1600/lightsquid-reportip.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="726" data-original-width="1039" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6OETdR8KLRlni6eDf-l8W0dh7KwswIVwZKYn2JJQTpaq9a4rgOod3SFyLcNU2jQJX2ONbfA9pJE8jUk_9Y3CaQGleJJ7vPVuVpPl76DmwO0FLh8La2eUnW0NrZo_XjUCaS6LlkafSVy04pUek16gAwqjYyftv5Yy_H8IKCC9pYArrtd1LDavmSikGkQ/s1600/lightsquid-reportip.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Reporte Diario localnet&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Por sitios visitados de cada IP&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzW8YV5deZkx9YL5vkZ5uuyi0acwSSKzdlYyUrlm42sjmK5-YAbJSCP_52c-mzQnX6uj8sU6zBbwXHWKLF4tuYqxFPl9I_u9SWyn2F3uy-gyk5h0e56OSM6LSgnQesn7tRdoB_02uhmKpLLuZ5c9WM0yNPuisQxMUcc1fOcOMUPkcD_xkx6nz2XpltcQ/s1600/lightsquid-sites.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="770" data-original-width="1011" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzW8YV5deZkx9YL5vkZ5uuyi0acwSSKzdlYyUrlm42sjmK5-YAbJSCP_52c-mzQnX6uj8sU6zBbwXHWKLF4tuYqxFPl9I_u9SWyn2F3uy-gyk5h0e56OSM6LSgnQesn7tRdoB_02uhmKpLLuZ5c9WM0yNPuisQxMUcc1fOcOMUPkcD_xkx6nz2XpltcQ/s1600/lightsquid-sites.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Reporte de visitas por IP&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Los reportes se pueden imprimir, en diferentes formatos, desde el botón "HERRAMIENTAS", el cual explicamos abajo en&amp;nbsp;&lt;b&gt;Reportes de Tráfico.&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Finalmente, se recomienda programar en el cron la generación de estadísticas diarias cada 10 minutos (o el tiempo que quiera asignarle), para mantenerlas actualizadas. Ejecute el siguiente comando:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo crontab -l | { cat; echo "*/10 * * * * /var/www/lightsquid/lightparser.pl today"; } | crontab -
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Debe establecer un valor de Gbytes o Mbytes máximo a consumir por usuario, puede ser 512M o 0.5G, etc. Para esto debe editar el archivo de configuración:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo nano /var/www/lightsquid/lightsquid.cfg
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y modificar la línea "oversize":&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#user maximum size per day limit (oversize)
$perusertrafficlimit = 10*1024*1024;
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Por ejemplo:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#user maximum size per day limit (oversize)
# Nomenclature:
# 1 GB	= 1024:		$perusertrafficlimit = 1024*1024*1024;
# 1.5 GB = 1536:	$perusertrafficlimit = 1536*1024*1024;
# 2 GB = 2048:		$perusertrafficlimit = 2048*1024*1024;
$perusertrafficlimit = 1536*1024*1024;
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y el resultado es algo similar a lo siguiente:&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ1vdBGSPB0WLx70GPACC1OxJAhCMKoIK2ZSsAo8t6-7Ol-6SuLXVGb9krcv4AuJS50AolCG-ZMm-QEWn1iWEupOPhEjBKS-BH0i8zkCbKogO7TyCp0rMlHR8QUY6NJD_JpKAmGm8xLGvVHlBk5jXjAFfbXh01bFKs9mbBvO48lxdsVn2Tl6a6lgfYQw/s1600/lightsquid-alert.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="573" data-original-width="1204" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ1vdBGSPB0WLx70GPACC1OxJAhCMKoIK2ZSsAo8t6-7Ol-6SuLXVGb9krcv4AuJS50AolCG-ZMm-QEWn1iWEupOPhEjBKS-BH0i8zkCbKogO7TyCp0rMlHR8QUY6NJD_JpKAmGm8xLGvVHlBk5jXjAFfbXh01bFKs9mbBvO48lxdsVn2Tl6a6lgfYQw/s1600/lightsquid-alert.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Alerta por exceder el consumo de datos&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota:&lt;/u&gt;&amp;nbsp;Tenga en cuenta que Lightsquid es un programa muy antiguo y sin soporte, por tanto, se sugiere tener otra fuente de datos sobre el tráfico para constatar.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Reportes de Tráfico&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Como mencionamos anteriormente, podemos descargar los reportes en diferentes formatos. Pues otra cosa que puede hacer con este aplicativo es exportar en &lt;code&gt;.csv&lt;/code&gt; el reporte "Top Sites", el cual no solo nos brinda la información de los sitios más visitados, sino que se puede crear a partir de este reporte una lista de depuración ACL para ser usada con un proxy, como Squid. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;u&gt;Nota&lt;/u&gt;: Una lista de depuración de Squid es una lista de dominios, con formato específico para este proxy, que sirve como base para excluir (whitelist) o incluir (blacklist) dominios, dentro de nuestras listas habituales de control de acceso ACL. Si quiere usar una lista de depuración como ACL para Squid, debe depurar los subdominios, para evitar el error de tipo ".sub.example.com is a subdomain of .example.com". Para mayor información, visite nuestro proyecto&amp;nbsp;&lt;a href="https://github.com/maravento/blackweb" target="_blank"&gt;Blackweb&lt;/a&gt;.&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK1N-y3jgCDInG57EgoQTCS1_gDChgEk88RnhOUv8RMgYxbGW0gXwRw6UJyL81H7sLFdA5hFuPG-sxmayZ4SI8fRzgNfDve0fSUAG9pDaYHmp0HeAMBQ1DsxNCNqrVvD3WgwFZQcCQWKoNiuxNdcDasBm8jvRPxX2keqZIy-3IUXpWmAqzJDoV1JUXdA/s1600/lightsquid-topsites.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="709" data-original-width="1228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK1N-y3jgCDInG57EgoQTCS1_gDChgEk88RnhOUv8RMgYxbGW0gXwRw6UJyL81H7sLFdA5hFuPG-sxmayZ4SI8fRzgNfDve0fSUAG9pDaYHmp0HeAMBQ1DsxNCNqrVvD3WgwFZQcCQWKoNiuxNdcDasBm8jvRPxX2keqZIy-3IUXpWmAqzJDoV1JUXdA/s1600/lightsquid-topsites.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Top Sites&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Por ejemplo, presionamos el botón "HERRAMIENTAS" y descargamos el archivo "Reporte de Navegación.csv", y ejecutamos el siguiente comando en la consola:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;awk -F',' '{gsub(/"/,"",$3);sub(/:.*/,"",$3);print $3}' "Reporte de Navegación.csv" | sed '/^\./d' | sed -r 's/^(www|ftp|ftps|ftpes|sftp|pop|pop3|smtp|imap|http|https)\.//g' | sed -r '/^[0-9]{1,3}(\.[0-9]{1,3}){3}$/d' | tr -d ' ' | awk '{print "." $1}' | sort -u &amp;gt; salida.txt
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Lo que hace este comando es utilizar "awk" para eliminar las comillas y los dos puntos del final del tercer campo del archivo CSV y luego utiliza "sed" para eliminar las líneas que comienzan con un punto. Luego, se utilizan varias expresiones regulares con "sed" para eliminar los protocolos y direcciones IP y dejar solo los nombres de dominio. Finalmente, se utiliza "tr" para eliminar los espacios en blanco y "awk" para agregar un punto al principio de cada línea (obligatorio en Squid), y se utiliza "sort" para eliminar duplicados y escribir el resultado "salida.txt", apto para ser usado en Squid.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Claro que el anterior solo mostrará los dominios TOP. Si quiere todos los dominios visitados de su red local en una sola ACL, apta para depuración Squid, ejecute el siguiente comando, para los mismos propósitos, con una depuración similar al anterior:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;find /var/www/lightsquid/report -type f -name '[0-9]*.[0-9]*.[0-9]*.[0-9]*' -exec grep -oE '[[:alnum:]_.-]+\.([[:alnum:]_.-]+)+' {} \; | sed 's/^\.//' | sed -r 's/^(www|ftp|ftps|ftpes|sftp|pop|pop3|smtp|imap|http|https)\.//g' | sed -r '/^[0-9]{1,3}(\.[0-9]{1,3}){3}$/d' | tr -d ' ' | awk '{print "." $1}' | sort -u &amp;gt; salida.txt
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Este comando utiliza "find" para buscar todos los archivos (-type f) que se encuentran en el directorio "/var/www/lightsquid/report" y que tengan un nombre que siga el patrón de IPv4 [0-9].[0-9].[0-9].[0-9] (por ejemplo, 192.168.1.1). Luego, utiliza "grep" para buscar en cada uno de estos archivos una cadena que siga el patrón de una dirección IP o un nombre de host (la opción "-oE" indica que sólo se deben mostrar las partes de la cadena que siguen el patrón especificado, el argumento "{}" indica el nombre de cada archivo que se encuentra, y ";" indica que se debe terminar el comando). Luego utiliza "sed" para eliminar el primer carácter (.) de cada línea de la salida del comando anterior (para eliminar el punto que queda después de la dirección IP o el nombre de host). Luego usa "sed -r" para buscar y reemplazar en cada línea todas las ocurrencias de las palabras claves "www, ftp, ftps, "https", y otras, seguidas de un punto (.) y eliminarlas sin reemplazo. Luego, usa "sed -r" para buscar y eliminar todas las líneas que comiencen con una dirección IPv4. Y finalmente elimina espacios en blanco, pone un punto al comienzo de cada línea (formato Squid) y elimina duplicados para mandar todo a "salida.txt"&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Puede reemplazar:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sed -r '/^[0-9]{1,3}(\.[0-9]{1,3}){3}$/d'
# o esta:
# grep -vE '^([0-9]{1,3}\.){3}[0-9]{1,3}$'
# Que, como la anterior, elimina las líneas que contienen IPv4 y dejan el resto de las líneas restantes (ej.: 192.168.1.10.midominio.com)
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Por esta, que elimina cualquier línea que contenga una dirección IPv4 en cualquier parte de la línea:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sed -r '/([0-9]{1,3}\.){3}[0-9]{1,3}/d'
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;También puede blquear a los usuarios que excedieron el límite de consumo y enviarlos a una página de aviso tipo Warning. Para esto, visite el repositorio &lt;a href="https://github.com/maravento/vault/tree/master/proxymon" target="_blank"&gt;Proxy Monitor&lt;/a&gt;, donde encontrará el procedimiento de instalación y configuración de Lightsquid + Bandata + Squid Monitor.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y es todo. Esperamos que les agrade este magnífico programa de monitoreo, que, a pesar de ser un abandonware, tiene lo esencial; al menos para los que no quieren complicarse con aplicativos sofisticados, con ingentes cantidades de datos y que solo quieren conocer el tráfico global y por usuario de su red local, y funciona muy bien en las más recientes distros de Linux (probado en Ubuntu 22.04/24.04).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Lightsquid con Nginx pueden consultarlo &lt;a href="https://www.sysadminsdecuba.com/2020/09/lightsquid/" target="_blank"&gt;AQUÍ&lt;/a&gt;.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para hacer lo mismo con &lt;a href="https://sourceforge.net/projects/sarg/" target="_blank"&gt;Sarg&lt;/a&gt; puede consultarlo &lt;a href="https://unix.stackexchange.com/a/225546/266428" target="_blank"&gt;AQUI&lt;/a&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Nuestro repositorio de Proxy Monitor &lt;a href="https://github.com/maravento/vault/tree/master/proxymon" target="_blank"&gt;AQUÍ&lt;/a&gt;&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/4983081407740644672" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/4983081407740644672" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2022/10/lightsquid.html" rel="alternate" title="Lightsquid" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjORR7IH66jDEWMWQUCktdertG-Nu--mmz6oxN2YP4X3L8rbdOM9ZT_PeHDqY-q3noRI2C4vqGhQErv8Ag6m5cp7ibYNhSnET5sbsmF8iQVBioLA9V4w0YIvCLpr3FR-LMddQa_zeKphjzoVpa5AB_SKTZ9TCpTJZDkfZxTPPGMkuQogf5UQMOg32WtYQ/s72-c/lightsquid-index.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-8083598292837615933</id><published>2022-08-16T12:05:00.016-04:00</published><updated>2023-06-05T12:29:39.783-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="batch"/><category scheme="http://www.blogger.com/atom/ns#" term="mantenimiento"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type="text">Modo Seguro</title><content type="html">&lt;div class="separator" style="clear: both;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5obVcdEYs6bpa3KD2XKieoblfvDfD50bXcNnFhU6RW3CRaWzQVj96DwCAntMYBTFGJkSCT_Mw_Y1rbEZUkc55dP-4ZhV6LIcbQ4TOKVaWB0JV5tsztsD5VtUvJtz3xmPuQxUgduTVE8fy-Eq79CKizUUIbeAi2WgNTOaYJISJAFRMesItxMZhYkPOEA/s1600/safemode-cover.png" style="display: block; padding: 1em 0px; text-align: center;"&gt;
    &lt;img border="0" data-original-height="293" data-original-width="520" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5obVcdEYs6bpa3KD2XKieoblfvDfD50bXcNnFhU6RW3CRaWzQVj96DwCAntMYBTFGJkSCT_Mw_Y1rbEZUkc55dP-4ZhV6LIcbQ4TOKVaWB0JV5tsztsD5VtUvJtz3xmPuQxUgduTVE8fy-Eq79CKizUUIbeAi2WgNTOaYJISJAFRMesItxMZhYkPOEA/s16000/safemode-cover.png" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En Windows XP, Vista y 7 era sencillo iniciar en "Modo Seguro" (Safe Mode) o "Modo a prueba de fallos". Tal solo al iniciar pulsábamos la tecla F8 durante el proceso de arranque y aparece la pantalla del "modo seguro".&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrEphxAFamAjn6l5yg2sUnQq3ViOEsx14GdiU7_UMvIdo2U3E9D54NmqVcHZXw0jysf1YWe6FrlceaxPa2hYlFslnYNh2DCT32BaKHcgVCEz89QrZ1w6EdCshhsjvxhc4smDprRmG6d5MaYFA8N4nqJzCmHV2p6d77JJ-UH0VCOAAhAGSsW7QGSUBdow/s1600/safemode-windowsold.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="482" data-original-width="642" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrEphxAFamAjn6l5yg2sUnQq3ViOEsx14GdiU7_UMvIdo2U3E9D54NmqVcHZXw0jysf1YWe6FrlceaxPa2hYlFslnYNh2DCT32BaKHcgVCEz89QrZ1w6EdCshhsjvxhc4smDprRmG6d5MaYFA8N4nqJzCmHV2p6d77JJ-UH0VCOAAhAGSsW7QGSUBdow/s1600/safemode-windowsold.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Modo Seguro - Windows XP, Vista, 7&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Y la cosa comenzó a complicarse a partir de Windows 8 hasta la actualidad.&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiefvIUjfI1v6lSHh4t9r-Com1UB7lnTcyKYdDxMijv48b_viTHIw0pM8fPACfOU9YYurpLvdT7iwgsCQqb_hEEvz5KNMJJ2JcQgmiB8ANx-BG7nPEKUucnBiY6WFiwEGxPheQ27djkMSX31OX1gCxqQuypVFzalT-IfhJOCxbPQ2eK7ifJC2yn8PdMw/s1600/safemode-windows10.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="293" data-original-width="520" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiefvIUjfI1v6lSHh4t9r-Com1UB7lnTcyKYdDxMijv48b_viTHIw0pM8fPACfOU9YYurpLvdT7iwgsCQqb_hEEvz5KNMJJ2JcQgmiB8ANx-BG7nPEKUucnBiY6WFiwEGxPheQ27djkMSX31OX1gCxqQuypVFzalT-IfhJOCxbPQ2eK7ifJC2yn8PdMw/s1600/safemode-windows10.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Menú para Habilitar Modo Seguro - Windows 8, 10, etc.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;No vamos a entrar en detalles sobre el engorroso proceso de iniciar en Modo Seguro en las nuevas versiones de Windows. Hay muchos tutoriales en internet que lo explican. Hoy ofrecemos algo más sencillo. Un batch script, para que, desde la comodidad de su escritorio, pueda iniciar su equipo en modo seguro o modo seguro en red y restablecerlo al modo normal cuando termine el mantenimiento.&lt;/div&gt;
&lt;pre class="prettyprint"&gt;@echo off
:: script to run in mode: safe with network/safe minimal/normal
:: for win 7/8/10/11
:: by maravento.com
echo ................................................
echo Press 1, 2, 3 to select your task, or 4 to EXIT.
echo Run this script with admin privileges          .
echo ................................................
echo.
echo 1 - Safe Boot Minimal
echo 2 - Safe Boot with Network
echo 3 - Normal Boot
echo 4 - Exit
echo.
SET /P M=Type 1, 2, 3, 4 then press ENTER:
IF %M%==1 GOTO safe
IF %M%==2 GOTO safenet
IF %M%==3 GOTO normal
IF %M%==4 GOTO exit

:safe
bcdedit /set {default} safeboot minimal
goto reboot

:safenet
bcdedit /set {default} safeboot network
goto reboot

:normal
bcdedit /deletevalue {default} safeboot
goto reboot

:reboot
shutdown -r -f -t 4
exit

:exit
exit
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Guárdelo como &lt;a href="https://gist.github.com/maravento/29d418fa47d956ea80e4ffa77a1f74bc"&gt;safemode.bat&lt;/a&gt; y ejecútelo con privilegios (exclúyalo de su antivirus). &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Imágenes cortesía de Microsoft,&amp;nbsp;aboutespanol, HP&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/8083598292837615933" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/8083598292837615933" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2022/08/safe-mode.html" rel="alternate" title="Modo Seguro" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5obVcdEYs6bpa3KD2XKieoblfvDfD50bXcNnFhU6RW3CRaWzQVj96DwCAntMYBTFGJkSCT_Mw_Y1rbEZUkc55dP-4ZhV6LIcbQ4TOKVaWB0JV5tsztsD5VtUvJtz3xmPuQxUgduTVE8fy-Eq79CKizUUIbeAi2WgNTOaYJISJAFRMesItxMZhYkPOEA/s72-c/safemode-cover.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-2118791029983736756</id><published>2022-07-18T13:08:00.023-04:00</published><updated>2022-10-24T11:37:20.953-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="batch"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="usb"/><title type="text">Mintstick</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0ewKceRPJ4WHXX9kg6rl-C8LR66vPV7dvyLWsiMDows_RTeXHSuwP7KKVADCOkELy5Q8eST6lWgNitKyLD85qUcX1NycFpBo2Httg1395i5-LCxhWkYbbR__sXkSKti_wtrNSoHd921GVsFGpdNq4lz_2BusRSooYXkCzK5h3aiQWr01crkbsfJhTuQ/s530/mintstick-usb-format.png" style="margin-left: 1em; margin-right: 1em;"&gt;
    &lt;img border="0" data-original-height="191" data-original-width="530" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0ewKceRPJ4WHXX9kg6rl-C8LR66vPV7dvyLWsiMDows_RTeXHSuwP7KKVADCOkELy5Q8eST6lWgNitKyLD85qUcX1NycFpBo2Httg1395i5-LCxhWkYbbR__sXkSKti_wtrNSoHd921GVsFGpdNq4lz_2BusRSooYXkCzK5h3aiQWr01crkbsfJhTuQ/s320/mintstick-usb-format.png" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;a href="https://github.com/linuxmint/mintstick" target="_blank"&gt;Mintstick&lt;/a&gt; es una herramienta gráfica que nos permite formatear memorias USB y crear memorias USB de arranque. Y, a nuestro juicio, es de las mejores aplicaciones para Linux que podemos encontrar.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6fLXjLyx8t4lS5-M_Ifj_OxsE6GJ9-DKpxq1YVVRwSWDNXYV6__a7SQ6g0_dNT_XhsphBleuylDPTTRuyg-tIbROAcuYLvkbHn3I1U4jA7uxRHULr7WmQQfPypgIQPBTZyyzbQ3lS4PzTel7BRLGAwlWNfd5D_bKLjPjP4FoFHeOpyVO4ydyr6S68tQ/s841/mintstick-tools.png" style="margin-left: auto; margin-right: auto;"&gt;
            &lt;img border="0" data-original-height="228" data-original-width="841" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6fLXjLyx8t4lS5-M_Ifj_OxsE6GJ9-DKpxq1YVVRwSWDNXYV6__a7SQ6g0_dNT_XhsphBleuylDPTTRuyg-tIbROAcuYLvkbHn3I1U4jA7uxRHULr7WmQQfPypgIQPBTZyyzbQ3lS4PzTel7BRLGAwlWNfd5D_bKLjPjP4FoFHeOpyVO4ydyr6S68tQ/s16000/mintstick-tools.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Herramientas de Mintstick (imagen cortesía de mintstick github)&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Al principio, fue desarrollada para &lt;a href="http://packages.linuxmint.com/pool/main/m/mintstick/" target="_blank"&gt;Linux Mint&lt;/a&gt;, pero actualmente se puede instalar en cualquier distribución basada en Debian. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Sin embargo, para el caso específico de Ubuntu se presenta un problema con las dependencias, ya que Ubuntu 20.04 utiliza &lt;a href="https://packages.ubuntu.com/focal/exfat-utils" target="_blank"&gt;exfat-utils&lt;/a&gt; y en Ubuntu 22.04 fue reemplazada por &lt;a href="https://packages.ubuntu.com/jammy/exfatprogs" target="_blank"&gt;exfatprogs&lt;/a&gt;. Y adicionalmente requiere de &lt;a href="https://packages.ubuntu.com/jammy/xapp" target="_blank"&gt;xapp&lt;/a&gt;&amp;nbsp;(debido a una falla el módulo &lt;a href="https://askubuntu.com/questions/1396739/failed-to-load-module-xapp-gtk3-module" target="_blank"&gt;"xapp-gtk3-module"&lt;/a&gt;). &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;A continuación un bash script que soluciona este inconveniente. Detecta la versión de Ubuntu e instala los paquetes correctos y la última versión de mintstick:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: MintStick reemplazará a la herramienta que use su distro por defecto.
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;#!/usr/bin/env bash
# mintstick install on Ubuntu
# by maravento.com
if [ $(lsb_release -is) = "Ubuntu" ]; then
    echo "Ubuntu: OK"
    if [ "$(lsb_release -sc | grep 'jammy')" ]; then
        echo "Dependencies for Ubuntu 22.04..."
        apt -y install python3-parted python-parted-doc gir1.2-udisks-2.0 xapp exfatprogs
      else
        echo "Dependencies for Ubuntu Old Versions..."
        apt -y install python3-parted python-parted-doc gir1.2-udisks-2.0 exfat-utils
    fi
    echo "Mintstick install..."
    lastmintstick=$(wget -O - http://packages.linuxmint.com/pool/main/m/mintstick/ | grep -Po 'href=".*?"' | sed -r 's:href\="(.*)":\1:' | grep ".deb" | sort | tail -1)
    echo $lastmintstick
    wget -q -c http://packages.linuxmint.com/pool/main/m/mintstick/"$lastmintstick" -O mintstick.deb
    dpkg -i mintstick.deb
    dpkg --configure -a &amp;amp;&amp;amp; apt-get -qq -y install --fix-missing &amp;amp;&amp;amp; apt-get -qq -y --fix-broken install
    echo "Done"
  else
    echo "Wrong OS version"
    exit
fi
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Guárdelo como bash y ejecútelo con privilegios:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo ./mintstick-install.sh&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y ya podemos disfrutar de mintstick en Ubuntu.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Ref: Issue &lt;a href="https://github.com/linuxmint/mintstick/issues/100" target="_blank"&gt;100&lt;/a&gt;
&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/2118791029983736756" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/2118791029983736756" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2022/07/mintstick.html" rel="alternate" title="Mintstick" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0ewKceRPJ4WHXX9kg6rl-C8LR66vPV7dvyLWsiMDows_RTeXHSuwP7KKVADCOkELy5Q8eST6lWgNitKyLD85qUcX1NycFpBo2Httg1395i5-LCxhWkYbbR__sXkSKti_wtrNSoHd921GVsFGpdNq4lz_2BusRSooYXkCzK5h3aiQWr01crkbsfJhTuQ/s72-c/mintstick-usb-format.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-2684564218016434741</id><published>2022-06-23T18:08:00.124-04:00</published><updated>2025-06-17T21:33:50.407-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Hardware"/><category scheme="http://www.blogger.com/atom/ns#" term="hdd"/><category scheme="http://www.blogger.com/atom/ns#" term="HowTO"/><category scheme="http://www.blogger.com/atom/ns#" term="repair"/><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><category scheme="http://www.blogger.com/atom/ns#" term="Virtual"/><category scheme="http://www.blogger.com/atom/ns#" term="virtualbox"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type="text">Reparando sectores de disco</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdsiqddFaq6eBxz2-ZcRfzne4VoffAgWN-w33FEdDzEkQgs3PMhvfa3r_dv0atCsEtdujSwCZhe49qWLMPej1AQy6_nW96Qma5-mdeFnqXCEUpM_D9XtMix5kpcM3xCnTgaIYLRjeh7ib9RSS4ewb9FsekifrgcWyJ7j2my5Sb3boe0jCla9ywZOeQlA/s784/diskrepair-hdd.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="600" data-original-width="784" height="245" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdsiqddFaq6eBxz2-ZcRfzne4VoffAgWN-w33FEdDzEkQgs3PMhvfa3r_dv0atCsEtdujSwCZhe49qWLMPej1AQy6_nW96Qma5-mdeFnqXCEUpM_D9XtMix5kpcM3xCnTgaIYLRjeh7ib9RSS4ewb9FsekifrgcWyJ7j2my5Sb3boe0jCla9ywZOeQlA/s320/diskrepair-hdd.jpg" width="320" /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;br /&gt;Reparar un disco duro requiere de mucho tiempo y dedicación, ya que puede tardar horas, días, semanas... Y también depende del tipo de daño. Si es lógico tal vez haya solución, pero si es físico la cosa se complica, puesto que hablamos de sectores que han sufrido golpes, desmagnetización, etc.&amp;nbsp;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;A continuación algunas herramientas para abordar este problema.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Antes de comenzar&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- El procedimiento descrito es para HDD (discos duros magnéticos/mecánicos).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Es un intento por recuperar sectores dañados, por tanto, la información se destruye, así como sus particiones.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Estas reparaciones son artificiales, en consecuencia, puede volver a fallar, así que no se recomienda que el HDD sea usado para almacenar información importante, incluso si la reparación es exitosa.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Las herramientas descritas a continuación pueden encontrarlas en la página del desarrollador o en las suites de herramientas &lt;a href="https://www.hirensbootcd.org/hbcd-v152/" target="_blank"&gt;Hiren's BootCD&lt;/a&gt;, &lt;a href="http://dlcboot.com/" target="_blank"&gt;DLC Boot&lt;/a&gt;, &lt;a href="https://www.majorgeeks.com/files/details/sergei_strelecs_winpe.html" target="_blank"&gt;Sergei Strelec's WinPE&lt;/a&gt;, etc. También existen otras herramientas no mencionadas, sin embargo, por lo extenso del tema nos hemos limitado a las que mejores resultados nos ofrecieron. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Se recomienda cambiar la BIOS de AHCI a IDE para poder usar las herramientas bajo&amp;nbsp;&lt;a href="https://es.wikipedia.org/wiki/DOS" target="_blank"&gt;DOS&lt;/a&gt;&amp;nbsp;que se mencionan. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Como aclaramos al principio, todos los programas descritos en este post pueden tardar tiempo indefinido en su ejecución, por tanto, sea muy paciente y mantenga su equipo conectado a un soporte UPS de respaldo, para garantizar que tenga energía sin interrupciones.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- &lt;a href="https://es.wikipedia.org/wiki/S.M.A.R.T."&gt;S.M.A.R.T.&lt;/a&gt; es una tecnología integrada a los discos duros que monitoriza sus diferentes parámetros, entonces, si su sistema le indica que hay un error de disco relacionado con SMART o que su estado es BAD, es muy poco lo que se puede hacer por el disco y una falla inminente puede suceder en cualquier momento (ver imagen inferior Victoria mostrando SMART BAD!). &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWdbRCWfQoPV6wwU5GtAjrOfN2Lq2CbI_F3x9iSOqWL1Jdon2lM9wav1kUYiv1clFvoQce_SxugOnh_D1ha1JyykB7NkRISTBblS_ucwXpKHGjZNqqHIzyp-e307Ko02lxxMG9U5Xit_HB8O6VFrsNzvwRXGrA-nAdzEOtsJTB_9IwmWskkFB2cUrppQ/s859/diskrepair-smart.png" style="margin-left: auto; margin-right: auto;"&gt;
          &lt;img border="0" data-original-height="555" data-original-width="859" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWdbRCWfQoPV6wwU5GtAjrOfN2Lq2CbI_F3x9iSOqWL1Jdon2lM9wav1kUYiv1clFvoQce_SxugOnh_D1ha1JyykB7NkRISTBblS_ucwXpKHGjZNqqHIzyp-e307Ko02lxxMG9U5Xit_HB8O6VFrsNzvwRXGrA-nAdzEOtsJTB_9IwmWskkFB2cUrppQ/s16000/diskrepair-smart.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;SMART: BAD!&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: Es importante aclarar que existen propuestas para reparar SMART (como la que explican en&amp;nbsp; &lt;a href="https://youtu.be/a7HEWNytRsI" target="_blank"&gt;este video&lt;/a&gt;), sin embargo,&amp;nbsp;son procedimientos técnicos de alto riesgo, que involucran la electrónica del disco, por tanto, no lo recomendamos
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Formato de bajo nivel&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Un formato de bajo nivel ayuda a deshacerse de sectores dañados y reescribe cualquier dato que contenga el disco y rompe sus particiones. La herramienta que recomendamos es &lt;a href="https://hddguru.com/software/HDD-LLF-Low-Level-Format-Tool/" target="_blank"&gt;HDD LLF&lt;/a&gt;. Puede ver un video sobre su funcionamiento &lt;a href="https://youtu.be/OonqhHBUxN4?si=QdZeNume9TBKrAuk" target="_blank"&gt;AQUÍ&lt;/a&gt;. &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFrlrkykqSMTJT3C3cs6X5H6C18lBPmmbog3_6LsdLkqoLTBgMTV2xyW7UpJHqQ3OE3dG7ZjMLVTxO0Pe9Vn_9A8DceI_F5QtbvvsyIPPaNVwgaaJCfuNVB5w5SWDLJ4GHISCZazT23nF-9TIPIy1vJ035eVSYaenxiTYxH7fXBiDVnTmYNUH5y9vn6A/s1600/diskrepair-HDDLLF.jpg" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="535" data-original-width="773" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFrlrkykqSMTJT3C3cs6X5H6C18lBPmmbog3_6LsdLkqoLTBgMTV2xyW7UpJHqQ3OE3dG7ZjMLVTxO0Pe9Vn_9A8DceI_F5QtbvvsyIPPaNVwgaaJCfuNVB5w5SWDLJ4GHISCZazT23nF-9TIPIy1vJ035eVSYaenxiTYxH7fXBiDVnTmYNUH5y9vn6A/s1600/diskrepair-HDDLLF.jpg" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;
        &lt;span style="text-align: justify;"&gt;HDD LLF (Low Level Format Tool)&amp;nbsp;&lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Regeneración de sectores dañados&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Aquí emplearemos &lt;a href="http://www.dposoft.net/hdd.html" target="_blank"&gt;HDD Regenerator&lt;/a&gt;. Esta aplicación freeware, que funciona bajo DOS, tiene la capacidad para reparar sectores defectuosos (errores magnéticos) en la superficie de un disco duro mediante el generador de bucles de &lt;a href="https://en.wikipedia.org/wiki/Hysteresis" target="_blank"&gt;histéresis&lt;/a&gt;. Ejecútela cuantas veces sea necesario, hasta que la línea aparezca en blanco. &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzP4B9sM8RmLABpZxlvmtDkCErnSuBUGrhL6T81ujqYSjnev6qeErAGxSf15JLibHEY618vuSskXuf7VNQGL_4yJopKkpXKQO47Xye2yc688BN-b99V3WGI0SADQJVFIlk4jMonENFtzzH3Me8QAn_a50sN4LS4TrQEepchHpj0PTv8yRMeJYq--3EmQ/s1600/diskrepair-hdd-regenerator.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="366" data-original-width="619" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzP4B9sM8RmLABpZxlvmtDkCErnSuBUGrhL6T81ujqYSjnev6qeErAGxSf15JLibHEY618vuSskXuf7VNQGL_4yJopKkpXKQO47Xye2yc688BN-b99V3WGI0SADQJVFIlk4jMonENFtzzH3Me8QAn_a50sN4LS4TrQEepchHpj0PTv8yRMeJYq--3EmQ/s1600/diskrepair-hdd-regenerator.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;
        &lt;span style="text-align: justify;"&gt;HDD Regenerator&lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: También puede ejecutar HDD Regenerator desde el escritorio de Windows; incluso en una VM y el soporte conectado vía USB (y hay una versión que el procedimiento es completamente desde el escritorio de Windows):
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw_zh3nLPloP6i-vez2lQ7jV4H8DsfpLQRbEbsx8JDz557Z4My5KNATSnayft6UsldepQeuG_vmETm7-oNPrcoRoj3ZcWC60XGHDIaEMwegNW9dW6KJJSDfTb-M4nUtLHp_oHd8T6rXbBJr38zkhXc37MWt5sd0cDgDA8p3b88orRECB0iBWHkG6pNvA/s1600/diskrepair-hddregeneratorvm.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="514" data-original-width="1100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw_zh3nLPloP6i-vez2lQ7jV4H8DsfpLQRbEbsx8JDz557Z4My5KNATSnayft6UsldepQeuG_vmETm7-oNPrcoRoj3ZcWC60XGHDIaEMwegNW9dW6KJJSDfTb-M4nUtLHp_oHd8T6rXbBJr38zkhXc37MWt5sd0cDgDA8p3b88orRECB0iBWHkG6pNvA/s1600/diskrepair-hddregeneratorvm.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;
        &lt;span style="text-align: justify;"&gt;HDD Regenerator sobre disco externo USB, corriendo en Windows VM Virtualbox&lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Reparación de bajo nivel (opcional)&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En este punto ya debería estar solucionado el problema; caso contrario, aún nos quedan las siguientes opciones:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;a href="https://hddguru.com/software/2005.10.02-MHDD/" target="_blank"&gt;MHDD&lt;/a&gt;;&amp;nbsp;una potente herramienta bajo DOS que nos permitirá realizar una reparación mucho más precisa del disco, ver atributos SMART, realizar formato de bajo nivel, reparación de sectores defectuosos y muchas otras pruebas.
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0RHTzS2bKWDV9PwQv0xkCNc2BDBiJuuII5dS_OKnR0IfGzSYdhetVVVPE__RM3PT8kbjphYuw3CZO3DPFB5G3TSAz08dJvBxFDKGai0EwSF3g7jhjW9_ZRIX_dMNTMGqJVefTm9GX4LJXyiuulbpz0jZPc6u4GE0rdNvCMVFv17Lt-GyNZilGha9x1w/s1600/diskrepair-MHDD.jpg" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="855" data-original-width="1277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0RHTzS2bKWDV9PwQv0xkCNc2BDBiJuuII5dS_OKnR0IfGzSYdhetVVVPE__RM3PT8kbjphYuw3CZO3DPFB5G3TSAz08dJvBxFDKGai0EwSF3g7jhjW9_ZRIX_dMNTMGqJVefTm9GX4LJXyiuulbpz0jZPc6u4GE0rdNvCMVFv17Lt-GyNZilGha9x1w/s1600/diskrepair-MHDD.jpg" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;
        &lt;span style="text-align: justify;"&gt;MHDD&lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Concretamente, la iniciamos con el comando&amp;nbsp; &lt;b&gt;scan&lt;/b&gt;&amp;nbsp;en el command prompt y seleccionar en "ON" las opciones "Erase Delays *DESTRUCTIVE*" (para que elimine los sectores con retraso o dañados) y "Loop test/repair" (para que repita el proceso al terminar y asegurarnos de que no quedó algún sector sin eliminar/reparar). &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNty4rc-u7xmmjFApVo9RF5XVzRHh9ivNhQkQbIwZXwt0PsQktU0sXSM_xq1IttZnjXqGnWighSRZ-VejHUzWSlqcrPawoM-1UQkTWJc1NCtaYBqwWtcrprw8luDnDI7am5jJKgZEWMP8p264yIHVYcekNWlDynG7OH2QtcIX5SZd86R97j1xnrbz_fA/s1600/diskrepair-MHDD-destructive.jpg" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="142" data-original-width="351" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNty4rc-u7xmmjFApVo9RF5XVzRHh9ivNhQkQbIwZXwt0PsQktU0sXSM_xq1IttZnjXqGnWighSRZ-VejHUzWSlqcrPawoM-1UQkTWJc1NCtaYBqwWtcrprw8luDnDI7am5jJKgZEWMP8p264yIHVYcekNWlDynG7OH2QtcIX5SZd86R97j1xnrbz_fA/s1600/diskrepair-MHDD-destructive.jpg" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;
        &lt;span style="text-align: justify;"&gt;MHDD modo destructivo y loop&lt;/span&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;a href="https://www.hdat2.com/" target="_blank"&gt;HDAT2&lt;/a&gt;;&amp;nbsp;otra herramienta bajo DOS muy efectiva reparando y remapeando (reasignando) sectores y recuperando el SMART. Para utilizarla, una vez cargado los archivos de FreeDOS, ejecutaremos en el command prompt el comando &lt;b&gt;hdat2&lt;/b&gt;&amp;nbsp;para iniciar el programa. Luego seleccionamos el disco e ingresamos al menú, eligiendo las opciones: Device Test menu &amp;gt; Detect and fix bad sectors menu &amp;gt; Fix with VERIFY/WRITE/VERIFY
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLOulSvZHRsO6xGFRPWEXPOnfH4DNCztz12jP52n5EPr9dk9ZAUD3SUHdR4d6VqffDHI7rBxQAB7Lvxw6-0nF-1rBd5M6PgiCf2oqqcVevDkUdxopoJQ47cvAxliSkEv4PNEdV2WtxswAPPFXXjHE77u5ImsUPjtbuaDnIvyXy3_MigwMRh_InEFJESw/s1600/diskrepair-hdat.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="400" data-original-width="720" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLOulSvZHRsO6xGFRPWEXPOnfH4DNCztz12jP52n5EPr9dk9ZAUD3SUHdR4d6VqffDHI7rBxQAB7Lvxw6-0nF-1rBd5M6PgiCf2oqqcVevDkUdxopoJQ47cvAxliSkEv4PNEdV2WtxswAPPFXXjHE77u5ImsUPjtbuaDnIvyXy3_MigwMRh_InEFJESw/s1600/diskrepair-hdat.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;HDAT2&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;u&gt;Nota:&lt;/u&gt;&amp;nbsp;HDAT2 también permite escanear los bloques, lo cual iría más rápido, pero marcando la opción BLOCK MODE lee el primer sector del bloque y si da error, todos los sectores dentro del bloque serán marcados como dañados. Esto no necesariamente implicaría un porcentaje significativo de espacio del disco. Lo malo de esta opción es que, si el sector dañado no es el primero del bloque, no le será útil.
  &lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0R7KEwD-hfDd1abrsSdx8cjzfREG05QjQQY--cQYHky_5icVcyvCqzuNYqTuYV8mO5DuQuNsXArddrUFhtDbOEWOFQG_611bW26bHNE_gYkBPk384FMrE8uCkNza35XObksZlo92WnoyGYeuv5-db7h9jNTp3EOVi95nckisqMG4hwUoovaHURqT2Ng/s1600/diskrepair-hdat2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="193" data-original-width="450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0R7KEwD-hfDd1abrsSdx8cjzfREG05QjQQY--cQYHky_5icVcyvCqzuNYqTuYV8mO5DuQuNsXArddrUFhtDbOEWOFQG_611bW26bHNE_gYkBPk384FMrE8uCkNza35XObksZlo92WnoyGYeuv5-db7h9jNTp3EOVi95nckisqMG4hwUoovaHURqT2Ng/s1600/diskrepair-hdat2.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;BLOCK MODE&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;b&gt;Verificación&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para este paso emplearemos &lt;a href="https://hdd.by/victoria/" target="_blank"&gt;Victoria&lt;/a&gt;,&amp;nbsp;que nos permitirá darle una última revisión a nuestro disco. &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLR8FNx9guJ4DJEUCxO7KNOgxP4RQqSADr8gycEE_ti9Teb7gDIoMWFLaXGIE2ZSzMdX1uKZzHlQiB_Gs_iP_LzQ1HChDcYJ7rdZyDzJVNy2wZzwsGYdCivE0r5TddDvKHjsGxUBgAUpxSE7qV6hG_c5Kpr53Y_B_W4daA8-Yd-m2pL6tHCyzUqwHgBg/s1600/diskrepair-victoria.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="663" data-original-width="1365" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLR8FNx9guJ4DJEUCxO7KNOgxP4RQqSADr8gycEE_ti9Teb7gDIoMWFLaXGIE2ZSzMdX1uKZzHlQiB_Gs_iP_LzQ1HChDcYJ7rdZyDzJVNy2wZzwsGYdCivE0r5TddDvKHjsGxUBgAUpxSE7qV6hG_c5Kpr53Y_B_W4daA8-Yd-m2pL6tHCyzUqwHgBg/s1600/diskrepair-victoria.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Victoria: opciones "Verify" con "Erase"&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: Victoria no es muy confiable reparando sectores, ya que repara los mismos sectores una y otra vez, creando un loop infinito (sin importar que antes haya realizado un "remap" de los sectores o un "write" de todo el disco), como se aprecia en el siguiente video:&amp;nbsp;
&lt;/div&gt;
&lt;div style="display: flex; justify-content: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/ue9pcnxcSXY" title="YouTube video player" width="560"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y el modo "Verify" no escribe y luego lee algunos datos, las opciones "Write + DDD" y "Write + wr LBA num" tienen algunas limitaciones y no funciona correctamente en algunos tipos de discos. Para mayor información &lt;a href="https://superuser.com/a/1815584/886205" target="_blank"&gt;AQUÍ&lt;/a&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Lo anterior no significa que sea mala. Es una excelente para mostrar los sectores dañados que no se pudieron reparar con las aplicaciones antes mencionadas, pero si al correrla sigue mostrando sectores defectuosos, entonces la única alternativa para seguir usando el disco duro es determina cuáles áreas del disco no muestran daños y generar particiones a partir de áreas con sectores buenos, aislando así los sectores defectuosos irrecuperables.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Hay dos maneras de hacerlo:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Automáticamente&lt;/u&gt;:&amp;nbsp;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Con&amp;nbsp;&lt;a href="http://www.dposoft.net/rbd.html" target="_blank"&gt;Repartición Bad Drive&lt;/a&gt;, un software diseñado específicamente para este trabajo. &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCCNgHGCWLyHDGL-SqEDfIc7s-VZhDZcu9v5xGfg50PwHIuIWuGAr6ZgCFCOLECBDl18n_qKa8GrLB3w1uOLWR1dxPfLTx4ybTWB9-XrpNRPadMAQgO_1TAL3nBAgD5P6kRZ-BifWGCeID3Aby7qVqVEca9ydu4UhhaSbU-QLM05Y8dvNV14QqMSPZ_Q/s1600/diskrepair-RBD1.gif" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="328" data-original-width="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCCNgHGCWLyHDGL-SqEDfIc7s-VZhDZcu9v5xGfg50PwHIuIWuGAr6ZgCFCOLECBDl18n_qKa8GrLB3w1uOLWR1dxPfLTx4ybTWB9-XrpNRPadMAQgO_1TAL3nBAgD5P6kRZ-BifWGCeID3Aby7qVqVEca9ydu4UhhaSbU-QLM05Y8dvNV14QqMSPZ_Q/s1600/diskrepair-RBD1.gif" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Repartition Bad Drive&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;:&amp;nbsp;&lt;a href="http://www.dposoft.net/rbd.html" target="_blank"&gt;Repartition Bad Drive&lt;/a&gt;&amp;nbsp;puede ser extremadamente lento. Llénese de paciencia. Puede ver el siguiente video &lt;a href="https://www.youtube.com/watch?v=MYrH-pUKqQ0" target="_blank"&gt;AQUÍ&lt;/a&gt; sobre su funcionamiento.
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy7L3Ehzt21Xb6KrDBRFpRzMgj8IooKyxCUXBwt3TKCzanv-qZv7BXqM-TTCPgMFUl7WpKM4jg3YzkX8uFJeICpkmmDq84zRmq6CcXSnt8PA14S4jVvG1suHmLBcrwAiRMgIHttNoizNE9w7PVNQl-1aFrhFl_RJeShcRep5JgFndKSbrcCr7DEwIdug/s1600/diskrepair-RBD2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="329" data-original-width="347" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy7L3Ehzt21Xb6KrDBRFpRzMgj8IooKyxCUXBwt3TKCzanv-qZv7BXqM-TTCPgMFUl7WpKM4jg3YzkX8uFJeICpkmmDq84zRmq6CcXSnt8PA14S4jVvG1suHmLBcrwAiRMgIHttNoizNE9w7PVNQl-1aFrhFl_RJeShcRep5JgFndKSbrcCr7DEwIdug/s1600/diskrepair-RBD2.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;RBD reparando disco USB 2 TB&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Manualmente&lt;/u&gt;:&amp;nbsp;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Verificando cuáles son las áreas comprometidas con Victoria para aislarlas y reparticionando/redimensionando el disco y formateando particiones de las áreas con sectores buenos, con&amp;nbsp;&lt;a href="https://www.diskpart.com/free-partition-manager.html" target="_blank"&gt;AOMEI Partition Assistant&lt;/a&gt;,&amp;nbsp; &lt;a href="https://gparted.org/" target="_blank"&gt;gparted&lt;/a&gt;&amp;nbsp;o cualquier otro software que lo permita. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: No se recomienda el uso del administrador de discos de Windows para este propósito, ya que, en todas las versiones de Windows, al menos hasta la fecha de publicación de este post, no permite la repartición/redimensión de disco.
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhN_jM6yZUMC5nYa0iOCM8JInlcwU0IBbUSmBDpuPr63I0LMXdfvlGtN62CB7bMlrLiSHVbIt2Bp5Sy37i4ziQJSboc8FHppHVke3I4HR2U9x5lJeDvDtfoaLtJ85eHh3Jc46zAc3o0qLfwvvx8WJLpFnTAdwxKi1mlmzo-rtnkLM98uqQEU0sXIj1zA/s1600/diskrepair-winadmin.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="686" data-original-width="977" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhN_jM6yZUMC5nYa0iOCM8JInlcwU0IBbUSmBDpuPr63I0LMXdfvlGtN62CB7bMlrLiSHVbIt2Bp5Sy37i4ziQJSboc8FHppHVke3I4HR2U9x5lJeDvDtfoaLtJ85eHh3Jc46zAc3o0qLfwvvx8WJLpFnTAdwxKi1mlmzo-rtnkLM98uqQEU0sXIj1zA/s1600/diskrepair-winadmin.png" /&gt;
        &lt;/a&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Administrador de Discos de Windows&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;div&gt;
    &lt;b&gt;Bonus&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Otras aplicaciones que puede utilizar en la etapa de verificación son&amp;nbsp;&lt;a href="https://www.diskgenius.com/" target="_blank"&gt;diskgenius&lt;/a&gt;&amp;nbsp;(verifica y repara sectores dañados y sus resultados son similares a los de Victoria),&amp;nbsp;&lt;a href="https://www.hdtune.com/" target="_blank"&gt;HD Tune&lt;/a&gt;&amp;nbsp;y&amp;nbsp;&lt;a href="https://crystalmark.info/en/software/crystaldiskinfo/" target="_blank"&gt;CrystalDiskInfo&lt;/a&gt;&amp;nbsp;(ambas muestran información valiosa y diagnostican de manera efectiva el estado del disco, antes, durante y después de la reparación). &lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjux-PgcMFLQseIuC1-oq9RHxDOwJJXHv6sFCcOzdVlQzulQcPpqAUsyTyvqzMLymoVraS7z_pPv2jSAU-nlYswuxsNpn1EJ8zR3BEaiDxZJ0dzWISLDzdF7iNfIHul-dm22csO2Jg1TPqkUsr6UukYmHkWozy5999Lr6Tvx-OrCGgnA8Xtg6bkWBE9Yw/s1600/diskrepair-diskgenius.jpg" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px;"&gt;
            &lt;img alt="" border="0" data-original-height="731" data-original-width="1024" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjux-PgcMFLQseIuC1-oq9RHxDOwJJXHv6sFCcOzdVlQzulQcPpqAUsyTyvqzMLymoVraS7z_pPv2jSAU-nlYswuxsNpn1EJ8zR3BEaiDxZJ0dzWISLDzdF7iNfIHul-dm22csO2Jg1TPqkUsr6UukYmHkWozy5999Lr6Tvx-OrCGgnA8Xtg6bkWBE9Yw/s1600/diskrepair-diskgenius.jpg" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Verificando sectores con DiskGenius&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Otra herramienta genial es &lt;a href="https://www.hdsentinel.com/download.php" target="_blank"&gt;Hard Disk Sentinel&lt;/a&gt;, que es como tener CrystalDiskInfo y DiskGenius juntos en una app y con mejoras, la cual tiene una opción llamada "Reinitialize disk surface", que sobreescribe el disco y restaura sectores con problemas. Puede consultar &lt;a href="https://www.youtube.com/watch?v=gD4xSI9fiig" target="_blank"&gt;este video&lt;/a&gt; que explica su funcionamiento. &lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="857" data-original-width="1131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiONvf6lyNnPQNRz3L4aTHB41gsAGFoimbvXC9CWZHKj4-jQV2IPWL2YHqbZCu7cesQxzRYFWGjs9o5jRxmTBluUSBYXmdEo6gEWdPZdQ8Vt9uJIX1aNoU0Ifp7WIokjfKfJcVVjs5qpHmybW2iSFpx4MfXkb2NQzhzF9Nocnro1uBzLbGbiNr98gxqoDBO/s1600/diskrepair-hard-disk-sentinel.png" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Hard Disk Sentinel - Reinitialize disk surface&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div class="separator" style="clear: both;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiONvf6lyNnPQNRz3L4aTHB41gsAGFoimbvXC9CWZHKj4-jQV2IPWL2YHqbZCu7cesQxzRYFWGjs9o5jRxmTBluUSBYXmdEo6gEWdPZdQ8Vt9uJIX1aNoU0Ifp7WIokjfKfJcVVjs5qpHmybW2iSFpx4MfXkb2NQzhzF9Nocnro1uBzLbGbiNr98gxqoDBO/s1600/diskrepair-hard-disk-sentinel.png" style="display: block; padding: 1em 0px; text-align: center;"&gt;&lt;/a&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Y como mención de honor tenemos a la legendaria&amp;nbsp;&lt;a href="https://www.grc.com/sr/spinrite.htm" target="_blank"&gt;SpinRite&lt;/a&gt;&amp;nbsp;de Steve Gibson, una de las mejores herramientas que hayan existido para reparar unidades de almacenamiento, pero&amp;nbsp;&lt;a href="https://en.wikipedia.org/wiki/SpinRite#:~:text=7.%5B9%5D-,Issues,-%5Bedit%5D" target="_blank"&gt;puede ser perjudicial&amp;nbsp;&lt;/a&gt;en unidades actuales de estado sólido y en algunos discos mecánicos,&amp;nbsp;&lt;a href="https://www.roadkil.net/program.php?ProgramID=29" target="_blank"&gt;Roadkil's Unstoppable Copier&lt;/a&gt;, capaz de&amp;nbsp;copiar datos de unidades corruptas y&amp;nbsp;&lt;a href="https://drevitalize.com/" target="_blank"&gt;DRevitalize&lt;/a&gt;, similar a HDD regenerator, pero, ambas, su desarrollo no ha estado al día con los cambios tecnológicos en sistemas de almacenamiento, por tanto, no recomendaríamos su uso. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Finalmente, si todo sale bien, compruebe las particiones resultantes con Check Disk (chkdsk) de Windows o cualquier herramienta que compruebe la superficie del disco y corrija su estructura.&lt;/div&gt;
&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/2684564218016434741" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/2684564218016434741" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2022/06/reparando-sectores-de-disco.html" rel="alternate" title="Reparando sectores de disco" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdsiqddFaq6eBxz2-ZcRfzne4VoffAgWN-w33FEdDzEkQgs3PMhvfa3r_dv0atCsEtdujSwCZhe49qWLMPej1AQy6_nW96Qma5-mdeFnqXCEUpM_D9XtMix5kpcM3xCnTgaIYLRjeh7ib9RSS4ewb9FsekifrgcWyJ7j2my5Sb3boe0jCla9ywZOeQlA/s72-c/diskrepair-hdd.jpg" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-1330143926560740156</id><published>2022-05-20T17:29:00.103-04:00</published><updated>2024-03-05T09:25:16.608-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Codecs"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Video"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type="text">Handbrake</title><content type="html">&lt;div style="text-align: justify;"&gt;
  &lt;div class="separator" style="clear: both; text-align: center;"&gt;
    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaRxLJVCr4fYGakuvup84ixlbVRmTPgsp3-M506j8KED1M8vSHkko_I_b5YxQTWNLaMe1cCFlyYIOQFoE769gNM5XxqS_izpYKEJO2T80WFUALaqEAQa1_rcWkYM1mqmEhKlaQ8lIzwJVi4q4yPxi4V85QjBZFVF9QnCIor_Jo1VXaoZc6MYjPHXgrw/s1004/handbrake.png" style="margin-left: 1em; margin-right: 1em;"&gt;
      &lt;img border="0" data-original-height="766" data-original-width="1004" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaRxLJVCr4fYGakuvup84ixlbVRmTPgsp3-M506j8KED1M8vSHkko_I_b5YxQTWNLaMe1cCFlyYIOQFoE769gNM5XxqS_izpYKEJO2T80WFUALaqEAQa1_rcWkYM1mqmEhKlaQ8lIzwJVi4q4yPxi4V85QjBZFVF9QnCIor_Jo1VXaoZc6MYjPHXgrw/s320/handbrake.png" width="320" /&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Handbrake no necesita presentación. Según &lt;a href="https://mundobytes.com/handbrake/" target="_blank"&gt;mundobytes&lt;/a&gt; y la propia &lt;a href="https://handbrake.fr/" target="_blank"&gt;página oficial&lt;/a&gt;, "es un convertidor de vídeo de código abierto y gratuito, capaz de convertir casi cualquier formato de vídeo a codecs modernos y universales. No solo funcionará como un convertidor de vídeo, sino que también es un excelente extractor de Blu-ray/DVD para fuentes protegidas y no protegidas contra copia. Este software también te abre al procesamiento por lotes que ayuda a convertir múltiples archivos de vídeo al mismo tiempo y, además, hay una tonelada de ajustes preestablecidos a tu disposición para guiarte al tipo de salida que buscas sin necesidad de usar tantas opciones". &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Existen cientos de tutoriales en Internet sobre este magnífico programa, tanto en vídeo como en texto, que explican al detalle su funcionamiento, así que hoy nos limitaremos a mencionar algunos tips que consideramos útiles a la hora de codificar nuestro vídeo.&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;Instalación&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Al ser cross-platform tiene versiones para Windows/macOS/Linux. Entonces tan solo &lt;a href="https://handbrake.fr/downloads.php" target="_blank"&gt;descargar&lt;/a&gt; el archivo de instalación (.exe o .dmg)&amp;nbsp;y seguir las instrucciones en pantalla.&amp;nbsp; &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Para Linux, existe un&amp;nbsp; &lt;a href="https://launchpad.net/~stebbins/+archive/ubuntu/handbrake-releases" target="_blank"&gt;PPA&lt;/a&gt;&amp;nbsp;para las distros basadas en debian, pero no está actualizado. Si quiere una versión más reciente se recomienda flatpak: &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;sudo apt install gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub fr.handbrake.ghb&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;O usar el siguiente PPA: &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;sudo add-apt-repository ppa:ubuntuhandbook1/handbrake
sudo apt install handbrake
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;Ajustes de calidad&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Según el sitio oficial, la &lt;a href="https://handbrake.fr/docs/en/1.3.0/workflow/adjust-quality.html" target="_blank"&gt;configuración recomendada&lt;/a&gt; para codificadores x264 y x265 es: &lt;/div&gt;
  &lt;li&gt;RF 18-22 para 480p/576p Definición estándar&lt;/li&gt;
  &lt;li&gt;RF 19-23 para 720p de alta definición&lt;/li&gt;
  &lt;li&gt;RF 20-24 para 1080p de alta definición completa&lt;/li&gt;
  &lt;li&gt;RF 22-28 para 2160p 4K de ultra alta definición&lt;/li&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyUKkgKPS0LXJnBrqm_ji09SNOOEgoocJJVfaP_fqEy9BfPzyk7DLE_cf_Hkkunz6AofEbIuSfWVKYvVu5UNURFlV8_55n0Z9ert6sm732ES-WzpjVvt2rcMFpI2J_jojfxhUHTn3U2fkEZz1TVFCsnsu0QbKb92K9v3x3P1Tq62OHAWDicFvHMW7zHA/s1600/handbrake-5.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="762" data-original-width="1004" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyUKkgKPS0LXJnBrqm_ji09SNOOEgoocJJVfaP_fqEy9BfPzyk7DLE_cf_Hkkunz6AofEbIuSfWVKYvVu5UNURFlV8_55n0Z9ert6sm732ES-WzpjVvt2rcMFpI2J_jojfxhUHTn3U2fkEZz1TVFCsnsu0QbKb92K9v3x3P1Tq62OHAWDicFvHMW7zHA/s1600/handbrake-5.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Control deslizante RF&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Aumentar la calidad menos 1-2 RF puede producir mejores resultados al codificar animaciones Sources (anime, dibujos animados). Se pueden emplear configuraciones de menor calidad para producir archivos más pequeños. Los ajustes drásticamente más bajos pueden mostrar una pérdida significativa de detalles. El uso de configuraciones de calidad superiores a las recomendadas puede generar archivos extremadamente grandes que pueden no ser compatibles con sus dispositivos. En caso de duda, manténgase en el rango recomendado o, utilice la configuración predeterminada para el Preset que seleccionó.&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;Metadata&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td style="text-align: center;"&gt;
            &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgno-pHZS-6MPuoJUg9lEBjYYFLlS3jvnBpE9vEvSHGA8cItv7Cwvo8C5APcI4bhLWlqh9a9AOPxf_WGcS7DER6OCVT-EZYV-a2YfZ7Mz4LANczoxx3mYUthtlkwSgdt2Sbz1qRQuMth4BXDogXk3bHrxWA60P9Sz6d87EWpIj052Rkg-e-xGMCZY14Q/s1600/handbrake-3.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
              &lt;img alt="" border="0" data-original-height="763" data-original-width="1005" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgno-pHZS-6MPuoJUg9lEBjYYFLlS3jvnBpE9vEvSHGA8cItv7Cwvo8C5APcI4bhLWlqh9a9AOPxf_WGcS7DER6OCVT-EZYV-a2YfZ7Mz4LANczoxx3mYUthtlkwSgdt2Sbz1qRQuMth4BXDogXk3bHrxWA60P9Sz6d87EWpIj052Rkg-e-xGMCZY14Q/s1600/handbrake-3.png" /&gt;
            &lt;/a&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td class="tr-caption" style="text-align: center;"&gt;Modificando Etiquetas&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;Si vamos a codificar un vídeo, sin importar su origen, es posible que necesitemos eliminar o modificar los metadatos. Para hacerlo simplemente vamos a "Etiquetas" y eliminamos o modificamos la metadata (título, etc.).
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Pero si son varios vídeos de origen que vamos a agregar a la cola para codificar en lotes, entonces se recomienda desmarcar la casilla "Usar los mismos ajustes para todos los títulos en un lote", ya que, al estar marcada, hace exactamente lo contrario a lo que se supone e impide que estos cambios se guarden en todos los archivos ( &lt;a href="https://github.com/HandBrake/HandBrake/issues/4368" target="_blank"&gt;issue #4368&lt;/a&gt;). Esto aplica para otros parámetros, como los subtítulos ( &lt;a href="https://github.com/HandBrake/HandBrake/issues/5827" target="_blank"&gt;issue #5827&lt;/a&gt;) &lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQP_LKm_E1sdMr33oRYRfMxL0MEra6ocV33h_e3sIFAigoVqqmijhvgmb81jvW5oS5UROgbehR8BdD4vqJhg71C4gDmqMr_FQ53XfQE_o3xErK6Alsek6UKEMZ9gqVaZsM629Pnjn9P3-pf3F85WvKTdPbCpHBePm2ceqk1ze9peVPsV1zliMxCKVajg/s1600/handbrake-4.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="447" data-original-width="739" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQP_LKm_E1sdMr33oRYRfMxL0MEra6ocV33h_e3sIFAigoVqqmijhvgmb81jvW5oS5UROgbehR8BdD4vqJhg71C4gDmqMr_FQ53XfQE_o3xErK6Alsek6UKEMZ9gqVaZsM629Pnjn9P3-pf3F85WvKTdPbCpHBePm2ceqk1ze9peVPsV1zliMxCKVajg/s1600/handbrake-4.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Desactivando "Usar los mismos ajustes para todos los títulos en un lote"&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Handbreak no es precisamente el mejor programa para la edición de tags, por eso es recomendable, en lugar de hacer lo anterior, después de la codificación, editar la metadata de los archivos de salida con otro aplicativo, como&amp;nbsp; &lt;a href="https://www.mp3tag.de/en/" target="_blank"&gt;Mp3tag&lt;/a&gt;,&amp;nbsp; &lt;a href="https://mkvtoolnix.download/downloads.html" target="_blank"&gt;MKVToolNix&lt;/a&gt;,&amp;nbsp; &lt;a href="https://apps.microsoft.com/store/detail/mp4-video-audio-tag-editor/9NQXZBD9KXMF?hl=en-us&amp;amp;gl=US" target="_blank"&gt;MP4 Video and Audio Tag Editor&lt;/a&gt;, &lt;a href="https://www.3delite.hu/Object%20Pascal%20Developer%20Resources/MKVTagEditor.html" target="_blank"&gt;MKV Tag Editor&lt;/a&gt;,&amp;nbsp; &lt;a href="https://www.videolan.org/vlc/index.html" target="_blank"&gt;VLC media player&lt;/a&gt;&amp;nbsp;(también sirve para codificar y es excelente), etc. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Pero no solo la metadata. En pruebas realizadas hemos podido constatar que al tener activada esta opción no siempre replica los parámetros elegidos en un vídeo (codec, subtítulos, audio, etc.) a toda la cola de procesamiento. Es por eso que recomendamos su desactivación y revisar cada parámetro de cada vídeo manualmente antes de agregarlos a la cola.&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;MP4 vs M4V&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Si queremos que la salida sea en formato .mp4 en lugar de .m4v (formato privativo de Apple), basta con desmarcar la casilla "Use la extensión de archivo compatible con iPod/itunes .m4v para MP4". &lt;div&gt;
      &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
        &lt;tbody&gt;
          &lt;tr&gt;
            &lt;td style="text-align: center;"&gt;
              &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQl9LE5Z8kiSUJ_mUytfWBRUPy6L7PEJ_n5MLwAWygqfwBoUZBEwPFF2pa2t5qCdBZsyfItBQx-OB4gaaBcRxdX9UMxZR4AqDfStFbxXYBNO4B74Y9BeYrPsj80eJNHl0V46gtkHBbSmja2qY8MZ-fAXGX6hXM1s-X63HPmD4LSTp2VgKHZe5lgVPvQ/s1600/handbrake-2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
                &lt;img alt="" border="0" data-original-height="443" data-original-width="739" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQl9LE5Z8kiSUJ_mUytfWBRUPy6L7PEJ_n5MLwAWygqfwBoUZBEwPFF2pa2t5qCdBZsyfItBQx-OB4gaaBcRxdX9UMxZR4AqDfStFbxXYBNO4B74Y9BeYrPsj80eJNHl0V46gtkHBbSmja2qY8MZ-fAXGX6hXM1s-X63HPmD4LSTp2VgKHZe5lgVPvQ/s1600/handbrake-2.png" /&gt;
              &lt;/a&gt;
            &lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
            &lt;td class="tr-caption" style="text-align: center;"&gt;Desactivar la opción "Use la extensión de archivo compatible con iPod/itunes .m4v para MP4"&lt;/td&gt;
          &lt;/tr&gt;
        &lt;/tbody&gt;
      &lt;/table&gt;
      &lt;div style="text-align: justify;"&gt;
        &lt;b&gt;CPU vs GPU&lt;/b&gt;
      &lt;/div&gt;
      &lt;div style="text-align: justify;"&gt;Revise la siguiente &lt;a href="https://handbrake.fr/docs/en/latest/technical/performance.html" target="_blank"&gt;tabla de codificación&lt;/a&gt; antes de hacer su selección: &lt;/div&gt;
      &lt;div&gt;
        &lt;div&gt;
          &lt;u&gt;Codificadores clasificados de más rápido a más lento:&lt;/u&gt;
        &lt;/div&gt;
        &lt;div&gt;1. Codificadores de hardware (AMD VCE, Intel QSV, NVIDIA NVENC)&lt;/div&gt;
        &lt;div&gt;2. x264&lt;/div&gt;
        &lt;div&gt;3. VP8&lt;/div&gt;
        &lt;div&gt;4. x265&lt;/div&gt;
        &lt;div&gt;5. VP9&lt;/div&gt;
        &lt;div&gt;
          &lt;u&gt;Calidad del codificador versus eficiencia del tamaño del archivo, clasificada de mejor a peor:&lt;/u&gt;
        &lt;/div&gt;
        &lt;div&gt;1. x265 y VP9&lt;/div&gt;
        &lt;div&gt;2. x264&lt;/div&gt;
        &lt;div&gt;3. Codificadores de hardware (AMD VCE, Intel QSV, NVIDIA NVENC)&lt;/div&gt;
        &lt;div&gt;4. VP8&lt;/div&gt;
        &lt;div style="text-align: justify;"&gt;
          &lt;b&gt;Subtítulos&lt;/b&gt;
        &lt;/div&gt;
        &lt;div&gt;Handbrake en ocasiones presenta problemas con los&amp;nbsp; &lt;a href="https://github.com/HandBrake/HandBrake/issues/4392" target="_blank"&gt;subtítulos forzados&lt;/a&gt;, especialmente al convertir un vídeo MKV a MP4, con 2 o más pistas de audio y de subtítulos.&amp;nbsp; &lt;/div&gt;
        &lt;div&gt;Por ejemplo, si el idioma del archivo MKV es español e inglés, pero tiene partes habladas en un tercer idioma (un actor/actriz habla en búlgaro en una escena), el archivo posiblemente tendrá 3 pistas de subtítulos; español, inglés y unknown (forzados) o español, español e inglés (donde el primer español casi siempre son los forzados). En la pestaña "subtítulos", los forzados vienen activados por defecto.&amp;nbsp;&lt;/div&gt;
        &lt;div&gt;En la mayoría de los casos no necesitamos ninguna acción y podemos codificar normalmente el video y los subtítulos forzados aparecerán en la escena en cuestión, (donde se habla el tercer idioma), sin embargo, hay ocasiones que no aparecen. Si este es el caso, hay dos alternativas.&lt;/div&gt;
        &lt;div&gt;1. Editar los subtítulos forzados por defecto y darle un nombre a esta pista, por ejemplo "latino" o "forzados", con el propósito de que los reconozca y seleccionarlos manualmente en el reproductor, tal y como aparece en la imagen de abajo:&lt;/div&gt;
        &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
          &lt;tbody&gt;
            &lt;tr&gt;
              &lt;td style="text-align: center;"&gt;
                &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlZoGBvEG8G4xJenwSGwGVwKTRwWPGtA2qp2TdYyuKDrW2DkRr9YDKBstMh56l-EhhMFwKUIQ7suFHwa8AzisvoCZmbugXJdAxrHO02muNRNoQBnHl4vqHpv-tOgp9gVAsYg_Tx2_8wzdV0REVSXO2ciZhE5Svdyvd7vq9lLC7rLaB1JI5oeoysxYuyw/s1006/handbrake-6.png" style="margin-left: auto; margin-right: auto;"&gt;
                  &lt;img border="0" data-original-height="763" data-original-width="1006" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlZoGBvEG8G4xJenwSGwGVwKTRwWPGtA2qp2TdYyuKDrW2DkRr9YDKBstMh56l-EhhMFwKUIQ7suFHwa8AzisvoCZmbugXJdAxrHO02muNRNoQBnHl4vqHpv-tOgp9gVAsYg_Tx2_8wzdV0REVSXO2ciZhE5Svdyvd7vq9lLC7rLaB1JI5oeoysxYuyw/s16000/handbrake-6.png" /&gt;
                &lt;/a&gt;
              &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td class="tr-caption" style="text-align: center;"&gt;Añadir nombre a la pista de subtítulos forzados&lt;/td&gt;
            &lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
        &lt;div style="text-align: justify;"&gt;2. Si la opción 1 falla y aún no muestra los subtítulos forzados, podemos agregar una nueva pista de subtítulos manualmente, pulsando el botón "añadir" (símbolo +) en la pestaña "subtítulos", para seleccionarla posteriormente en el reproductor, manualmente, tal y como se ve en la imagen abajo:&lt;/div&gt;
        &lt;div style="text-align: justify;"&gt;
          &lt;b&gt;
            &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
              &lt;tbody&gt;
                &lt;tr&gt;
                  &lt;td style="text-align: center;"&gt;
                    &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIZJGh8qati8-nqx6uNTHO6wrjX2jwLZmvHGxBO3jDhGgf8v0kGF9swHARS16MoY1iCW-DcUxht1_Y0NPEBVMluooPFGGCgS5U3PIhqks8arB623AauyWCb7VmYgn9c1dbjuLqOkdOvOd0z29c-qaxgyKxn-PpWepj9rSF5TyQqf4REhtZ79UUcl9qzw/s592/handbrake-7.png" style="margin-left: auto; margin-right: auto;"&gt;
                      &lt;img border="0" data-original-height="316" data-original-width="592" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIZJGh8qati8-nqx6uNTHO6wrjX2jwLZmvHGxBO3jDhGgf8v0kGF9swHARS16MoY1iCW-DcUxht1_Y0NPEBVMluooPFGGCgS5U3PIhqks8arB623AauyWCb7VmYgn9c1dbjuLqOkdOvOd0z29c-qaxgyKxn-PpWepj9rSF5TyQqf4REhtZ79UUcl9qzw/s16000/handbrake-7.png" /&gt;
                    &lt;/a&gt;
                  &lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                  &lt;td class="tr-caption" style="text-align: center;"&gt;Añadiendo subtítulos forzados manualmente&lt;/td&gt;
                &lt;/tr&gt;
              &lt;/tbody&gt;
            &lt;/table&gt;
          &lt;/b&gt;
        &lt;/div&gt;
        &lt;div style="text-align: justify;"&gt;Como último recurso, si no quiere hacer la selección manual en el reproductor o tiene problemas con los dos pasos anteriores, elimine los subtítulos forzados por defecto y vuelva a crearlos manualmente, seleccionado la pista de subtítulos forzados y marcando solamente la casilla "incrustar en el video" y guardar, tal y como aparece en la imagen de abajo.&lt;/div&gt;
        &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
          &lt;tbody&gt;
            &lt;tr&gt;
              &lt;td style="text-align: center;"&gt;
                &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv04EUFbCzqtbNtBopLpyn7IvT36C0Kg4hjqa5x6pjHV7AEVFBqY4ab9H2Q9IBnTyhT6bko_QsbSaGIPxDRraE71aFE_NBKbww3Zx5B67VqJ-k7Nq9ByNLnJW_PWmc89jcRCUPRucBOYiGJRgf9SVn1t63P0EJU22B6MVyrVJG37SzSbo38SyflTKWug/s1600/handbrake-sub2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
                  &lt;img alt="" border="0" data-original-height="264" data-original-width="542" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv04EUFbCzqtbNtBopLpyn7IvT36C0Kg4hjqa5x6pjHV7AEVFBqY4ab9H2Q9IBnTyhT6bko_QsbSaGIPxDRraE71aFE_NBKbww3Zx5B67VqJ-k7Nq9ByNLnJW_PWmc89jcRCUPRucBOYiGJRgf9SVn1t63P0EJU22B6MVyrVJG37SzSbo38SyflTKWug/s1600/handbrake-sub2.png" /&gt;
                &lt;/a&gt;
              &lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td class="tr-caption" style="text-align: center;"&gt;Creando manualmente la pista subtítulos forzados&lt;/td&gt;
            &lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
        &lt;div style="text-align: justify;"&gt;Cerciórese de la pista a elegir (por lo general es una pista que no tiene el nombre de un idioma específico, ejemplo "Unknown UTF-8", como se ve en la imagen superior), ya que si agrega otra diferente, puede que le aparezcan los subtítulos en todo el video, de principio a fin.&lt;/div&gt;
        &lt;div style="text-align: justify;"&gt;
          &lt;u&gt;Nota&lt;/u&gt;: Es posible que el resultado final no sea el deseado y los subtítulos forzados no aparezcan centrados.
        &lt;/div&gt;
        &lt;div style="text-align: justify;"&gt;
          &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
            &lt;tbody&gt;
              &lt;tr&gt;
                &lt;td style="text-align: center;"&gt;
                  &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGMQpKkossXKsS7hPdkBo9utOANuANS3fS6crdgSser50ZwBK-_TlpgqS_2wJ7qvIVGOelJh4BT4xRGpC52CIMb30LWilIn2BrY2NvvrmJX9ju0pQH5lM3MAJ3HOr4sAgSgSPgCP0DL3dXqvnesZVAn11sTX7zU3lhLNmQOvqvRQE6er1MQQPJwgte7g/s1600/handbrake-sub.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
                    &lt;img alt="" border="0" data-original-height="630" data-original-width="1264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGMQpKkossXKsS7hPdkBo9utOANuANS3fS6crdgSser50ZwBK-_TlpgqS_2wJ7qvIVGOelJh4BT4xRGpC52CIMb30LWilIn2BrY2NvvrmJX9ju0pQH5lM3MAJ3HOr4sAgSgSPgCP0DL3dXqvnesZVAn11sTX7zU3lhLNmQOvqvRQE6er1MQQPJwgte7g/s1600/handbrake-sub.png" /&gt;
                  &lt;/a&gt;
                &lt;/td&gt;
              &lt;/tr&gt;
              &lt;tr&gt;
                &lt;td class="tr-caption" style="text-align: center;"&gt;Subtítulos forzados en español, a la izquierda.&amp;nbsp;(The House of Dragon 1x1, cortesía de HBO Max)&lt;/td&gt;
              &lt;/tr&gt;
            &lt;/tbody&gt;
          &lt;/table&gt;
        &lt;/div&gt;
        &lt;div style="text-align: justify;"&gt;Pero si no quiere complicarse con el tema de los subtítulos, simplemente presione el botón "Añadir Todo" y agregue todos los subtítulos que tenga el video.&lt;/div&gt;
        &lt;div style="text-align: justify;"&gt;
          &lt;b&gt;Otros Tips&lt;/b&gt;
        &lt;/div&gt;
        &lt;div&gt;- Si va a codificar en x265&amp;nbsp;(HEVC/H.265) se recomienda hacerlo con GPU, porque con CPU el tiempo de codificación puede duplicarse respecto a x264. Para mayor información, consulte&amp;nbsp; &lt;a href="https://youtu.be/FsTtMERkFbE" target="_blank"&gt;este vídeo&lt;/a&gt;, donde su autor hace una comparativa de "presets" con GPU y CPU con ambos codecs. &lt;/div&gt;
        &lt;div&gt;- Si quiere un mayor control sobre los parámetros de codificación, elija el preset "Official &amp;gt; Production &amp;gt; Production Standard"&lt;/div&gt;
        &lt;div&gt;- No confundir la metadata explicada anteriormente con la casilla "Passthru Common Metadata", ya que esta última está relacionada con la fecha y modificación del archivo de origen.&lt;/div&gt;
        &lt;div&gt;- Tenga en cuenta que los cambios en la metadata se guardarán más rápidamente en MKV que en MP4. Esto se debe en parte a que el bloque de metadata en MP4 está al comienzo y en MKV al final.&lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/1330143926560740156" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/1330143926560740156" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2022/05/handbrake.html" rel="alternate" title="Handbrake" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzaRxLJVCr4fYGakuvup84ixlbVRmTPgsp3-M506j8KED1M8vSHkko_I_b5YxQTWNLaMe1cCFlyYIOQFoE769gNM5XxqS_izpYKEJO2T80WFUALaqEAQa1_rcWkYM1mqmEhKlaQ8lIzwJVi4q4yPxi4V85QjBZFVF9QnCIor_Jo1VXaoZc6MYjPHXgrw/s72-c/handbrake.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-6565946309803990944</id><published>2022-04-27T13:29:00.035-04:00</published><updated>2022-10-24T11:38:58.096-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="Virtual"/><category scheme="http://www.blogger.com/atom/ns#" term="virtualbox"/><title type="text">Virtualbox: Mover o Redimensionar Guest VM</title><content type="html">&lt;div class="separator" style="clear: both;"&gt;
  &lt;span style="text-align: justify;"&gt;
    &lt;div class="separator" style="clear: both; text-align: center;"&gt;
      &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCoyH5BdAPbE5NeLpXUd2aXOtgj9C4-n2EOBy3q8STPKiw7xrcyvhSfQksCuTdRoT67izNEy7mRYtwW1yPf3RSvHQuovgIqM6ufyDB_Q7W3k92U9dj_DB0t_0KQqOKKUkYUouyE8JBye11-DmuACvy0N1LRMidH8w4T7wSOun9qgI-pccSpBlqksPu5Q/s796/vmresize1.png" style="margin-left: 1em; margin-right: 1em;"&gt;
        &lt;img border="0" data-original-height="674" data-original-width="796" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCoyH5BdAPbE5NeLpXUd2aXOtgj9C4-n2EOBy3q8STPKiw7xrcyvhSfQksCuTdRoT67izNEy7mRYtwW1yPf3RSvHQuovgIqM6ufyDB_Q7W3k92U9dj_DB0t_0KQqOKKUkYUouyE8JBye11-DmuACvy0N1LRMidH8w4T7wSOun9qgI-pccSpBlqksPu5Q/s320/vmresize1.png" width="320" /&gt;
      &lt;/a&gt;
    &lt;/div&gt;
    &lt;br /&gt;Con la liberación de
  &lt;/span&gt;
  &lt;a href="https://releases.ubuntu.com/22.04/" style="text-align: justify;" target="_blank"&gt;Ubuntu 22.04&lt;/a&gt;
  &lt;span style="text-align: justify;"&gt; llegaron nuevos problemas y &lt;/span&gt;
  &lt;a href="https://www.virtualbox.org/" style="text-align: justify;" target="_blank"&gt;Virtualbox&lt;/a&gt;
  &lt;span style="text-align: justify;"&gt; no es la excepción, ya que no se caracteriza por estar al día con las actualizaciones para las distros de linux, en especial Ubuntu.&amp;nbsp;&lt;/span&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Por ejemplo, a la fecha no existe versión para Ubuntu 22.04 en el&amp;nbsp; &lt;a href="https://www.virtualbox.org/wiki/Linux_Downloads" target="_blank"&gt;repositorio de VirtualBox&lt;/a&gt;. &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVS6KufAypDzCK4vPCDzmBGvJv7Dxs2mBjwFQZSwtIKQMwgFj-W-osxBmxqosbQLeLynGNdeTxwUQPG2Ienwtj00iEjVlS4Vxl9BrtEx27zwividALVRnUYV1dNPWkrmWFtNjoZzumodfWRWE4lVXxNMJD4nJdKIJ2lU3J-bhfB_5ggmVarD_p7daeuQ/s1600/vmresize2.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="523" data-original-width="622" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVS6KufAypDzCK4vPCDzmBGvJv7Dxs2mBjwFQZSwtIKQMwgFj-W-osxBmxqosbQLeLynGNdeTxwUQPG2Ienwtj00iEjVlS4Vxl9BrtEx27zwividALVRnUYV1dNPWkrmWFtNjoZzumodfWRWE4lVXxNMJD4nJdKIJ2lU3J-bhfB_5ggmVarD_p7daeuQ/s1600/vmresize2.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Repositorio de VirtualBox&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Y para instalarlo debemos hacerlo del repositorio de Ubuntu:&lt;/div&gt;
  &lt;pre class="prettyprint"&gt;sudo apt install dkms linux-headers-$(uname -r)
sudo apt install virtualbox virtualbox-dkms virtualbox-qt
sudo apt install virtualbox-guest-additions-iso virtualbox-ext-pack 
sudo modprobe vboxdrv&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Y no olvidar &lt;a href="https://www.virtualbox.org/manual/ch02.html#:~:text=INSTALL_NO_VBOXDRV%3D1-,2.3.4.%C2%A0The%20vboxusers%20Group,-The%20Linux%20installers" target="_blank"&gt;agregar el usuario al grupo "vboxusers"&lt;/a&gt;: &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;sudo usermod -a -G vboxusers $USER&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Que instalará la versión 6.1.32 (a la fecha de publicación de este post) y no la 6.1.34 o superior de los repositorios de VirtualBox y el bash script para de instalación para Ubuntu, publicado en nuestro artículo &lt;a href="https://www.maravento.com/2015/12/kernel-service-is-not-running.html#:~:text=de%20Ubuntu%2015.10-,Update%202020,-El%20script%20de" target="_blank"&gt;Virtualbox kernel service is not running&lt;/a&gt;, por el momento no se podría usar para Ubuntu 22.04. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Y si bien funciona lo hace a medias, ya que al iniciar una máquina virtual no se podrá mover o redimensionar, sin importar si es Linux, Windows, etc.&amp;nbsp;&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;No podemos afirmar que esto suceda en todos los sabores de Ubuntu o en Debian, ya que no hemos extendido las pruebas lo suficiente, pero afortunadamente la solución es simple.&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;En el caso de que no pueda redimensionar o mover su máquina virtual (Guest VM), tan solo desactive la casilla "Auto Capture Keyboard / Autocapturar teclado".&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7MCUbEf6Q1JFb_b6WjWZFQx6ZxTAB8AY6vqW06rRSQCt8OzPDELQdYI2V6AN_JTG4WekBn9GgFwB5KAtdAV_IICXvMBmz2PDBP63DVM-UAHNfkz8deEnHuGEdKbIDHxYHIw7lRYHYXoDTiVq3Z6SAbU7dE-usN6Vs9mKGKcS7_d_-KRuAJo4btW2-EQ/s1600/vmresize3.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="377" data-original-width="765" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7MCUbEf6Q1JFb_b6WjWZFQx6ZxTAB8AY6vqW06rRSQCt8OzPDELQdYI2V6AN_JTG4WekBn9GgFwB5KAtdAV_IICXvMBmz2PDBP63DVM-UAHNfkz8deEnHuGEdKbIDHxYHIw7lRYHYXoDTiVq3Z6SAbU7dE-usN6Vs9mKGKcS7_d_-KRuAJo4btW2-EQ/s1600/vmresize3.png" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Autocapturar teclado&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Esta opción se encuentra en "Archivo &amp;gt; Preferencias &amp;gt; Entrada &amp;gt; Máquina virtual".&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;br /&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Ticket &lt;a href="https://www.virtualbox.org/ticket/20907" target="_blank"&gt;20907&lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/6565946309803990944" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/6565946309803990944" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2022/04/virtualbox-mover-o-redimensionar-guest.html" rel="alternate" title="Virtualbox: Mover o Redimensionar Guest VM" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCoyH5BdAPbE5NeLpXUd2aXOtgj9C4-n2EOBy3q8STPKiw7xrcyvhSfQksCuTdRoT67izNEy7mRYtwW1yPf3RSvHQuovgIqM6ufyDB_Q7W3k92U9dj_DB0t_0KQqOKKUkYUouyE8JBye11-DmuACvy0N1LRMidH8w4T7wSOun9qgI-pccSpBlqksPu5Q/s72-c/vmresize1.png" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-3233143223726974270</id><published>2022-02-02T11:37:00.115-05:00</published><updated>2024-08-20T13:02:53.452-04:00</updated><title type="text">Correos con dominio propio en gmail</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjUfzniCXbCmrojvqKBtoqX7TrweE_isBou_Dm0ShKiYSbxrzCq7A-qKjPXSie4Vtl4zZ2yiDJ8IX3DwqGb-4Z25ge9h60JlHmUwKs_OIyPdBggm2ijQSPGtrg6tqn0GfwH6vHkNljRDXYDrkoFrwVCBknFfXnyscarjhQ2Cki9yQq3qPiUdjKhwRLFpg=s1500" style="margin-left: 1em; margin-right: 1em;"&gt;
    &lt;img border="0" data-original-height="589" data-original-width="1500" height="126" src="https://blogger.googleusercontent.com/img/a/AVvXsEjUfzniCXbCmrojvqKBtoqX7TrweE_isBou_Dm0ShKiYSbxrzCq7A-qKjPXSie4Vtl4zZ2yiDJ8IX3DwqGb-4Z25ge9h60JlHmUwKs_OIyPdBggm2ijQSPGtrg6tqn0GfwH6vHkNljRDXYDrkoFrwVCBknFfXnyscarjhQ2Cki9yQq3qPiUdjKhwRLFpg=s320" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Desde que salió la noticia de que Google nos va a echar a todos de GSuite (aka Google Apps, aka Google Workspace), algo que pudimos &lt;a href="https://www.blogger.com/blog/post/edit/3411654714210847372/3233143223726974270#" target="_blank"&gt;confirmar personalmente vía twitter&lt;/a&gt;... &lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;img alt="" border="0" data-original-height="442" data-original-width="606" src="https://blogger.googleusercontent.com/img/a/AVvXsEhnXKzXQNIYtXk18tZEOrs_qGaHCrL2fYEOIrjs9ASGdEzAHnJ_kNvdZ6m8Qa5EC8TnebJ6lBMk5T4Pgl4hj36o5jGVtXpd2_dCIIgfOaclh3oHn4NftJwbQ43TutOLGbGgOlnxLIGFZOP7SVGvJI0HVGV-eB_-X1VSdH-wr_y_z6ftt6mQAIxdehfwcQ" style="margin-left: auto; margin-right: auto;" /&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Respuesta de Google Workspace a nuestra consulta en Twitter&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Y por correo electrónico...&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;img alt="" border="0" data-original-height="462" data-original-width="601" src="https://blogger.googleusercontent.com/img/a/AVvXsEgztTGtPk2pL7GqPzFWK3ZtZ2Ny9rtJda6ENzWYRRXKb5pVIOS79H1kua_X2OvSWK5OnS-77i_Du3u1bYEwuRPaZH4WJ47T5OgMJOLEHzFikU9WG1ZxjGVPpMtQq5zTjyVhn2xUkBRd7sLokMFcB30QBuJAkz2z1ejDuuxVnxgWDBGCr0fDDKEs0gK9gg" style="margin-left: auto; margin-right: auto;" /&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Respuesta de Google Workspace a nuestra consulta por mail&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;Y a pesar de que en USA un &lt;a href="https://chimicles.com/google-legacy-g-suite-class-action-investigation/" target="_blank"&gt;pool de abogados prepara una demanda colectiva&lt;/a&gt;, esto no tiene reversa y el que tenga una cuenta legacy en google comenzará a pagar a partir del 1 de julio de 2022. Y si no eliges un plan, Google lo hará por ti (me imagino cómo será eso) y si no tienes registrado un método de pago, puedes despedirte del acceso a tus cuentas y datos, ya que &lt;a href="https://support.google.com/a/answer/60217" target="_blank"&gt;una vez que hayan transcurrido 60 días desde la suspensión, dejarás de tener acceso a los servicios&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;¿Qué carajos se supone que voy a hacer ahora?&amp;nbsp;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para responder esta pregunta hemos consultado los diferentes portales especializados y todos se limitaron a repetir lo mismo que ya sabemos,&amp;nbsp;sin más detalles.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Muchos, desesperados, se desbocaron a internet buscando una alternativa gratis y similar a GSuite, pero si hacemos una búsqueda en google de "correos con dominio propio gratis", una gran parte de los resultados explican cómo enviar y recibir correos con dominio propio en gmail, pero insisten que debes contratar el correo con dominio propio con un proveedor para poder redireccionarlo (ejemplo: miusuario@midominio.com a miusuario@gmail.com).&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Solo algunos tutoriales mencionan a &lt;a href="https://www.zoho.com/es-xl/" target="_blank"&gt;Zoho&lt;/a&gt;. Y si bien este servicio nos permite configurar los correos de tu dominio propio "miusuario@midominio.com", es necesario aclarar un par de cosas:&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- La interfaz no se parece en nada a gmail y como google nos mal acostumbró entonces cualquier cosa diferente nos parece una herejía&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Zoho NO permite usar gratis los protocolos POP, SMTP, IMAP y mucho menos permite redireccionamiento a otro correo, entonces, para los ex-Gsuite, no les servirá de nada abrir una cuenta en Zoho porque no van a poder migrar el contenido de sus cuentas de dominio y tampoco reenviar correos a gmail. Para hacerlo hay que pagarle un plan a Zoho (y dicho sea de paso, Zoho envía ingentes cantidades de correos a tu buzón, con el propósito de que compres el dichoso plan), y si tenemos que llegar a esto, es preferible quedarnos en Google Workspace y nos evitamos la migración.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;¿Es el fín del mundo?&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;No. Si bien un proceso de migración de la noche a la mañana es traumático, hay una solución muy sencilla y sin costo y es usar cuentas de gmail, con dominio propio y hacer el direccionamiento, utilizando el proyecto &lt;a href="https://forwardemail.net/" target="_blank"&gt;forward email&lt;/a&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Este es un proyecto de código abierto, &lt;a href="https://github.com/forwardemail" target="_blank"&gt;puede consultarlo en github&lt;/a&gt;, que nos permite crear un direccionamiento de mi correo corporativo (miusuario@midominio.com) a mi correo de gmail (miusuario@gmail.com), sin pagar un centavo. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Antes de comenzar tenga en cuenta lo siguiente:&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- El presente tutorial aplica para cualquiera que tenga un dominio y desee tener un correo con dominio propio tipo @midominio.com, sin pagar cargos extras por esto y sin importar si viene de Gsuite o es la primera vez que compra un dominio.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Para propósitos de este tutorial, usaremos&amp;nbsp; &lt;a href="https://www.godaddy.com/es" target="_blank"&gt;godaddy&lt;/a&gt;, pero aplica para cualquier registrador. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Deben crear primero una cuenta en gmail a donde apuntar el redireccionamiento (y contenido) del correo con dominio propio.&amp;nbsp;Asegurese que dicha cuenta tenga activada la doble autenticación, ya que Google no admite el uso de aplicaciones o dispositivos de terceros que le soliciten que inicie sesión en su cuenta de Google usando solo su nombre de usuario y contraseña (anteriormente " &lt;a href="https://support.google.com/accounts/answer/6010255" target="_blank"&gt;Aplicaciones menos seguras -&amp;nbsp; Less secure apps&lt;/a&gt;"). Para mayor información, consulte el tutorial del programa &lt;a href="https://emailbackupwizard.com/settings/gmail.html" target="_blank"&gt;Email Backup Wizard&lt;/a&gt;&amp;nbsp;que explica muy bien el proceso. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Deben tener un dominio propio&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- En el panel de administración de su dominio no pueden haber registros MX. Si existen deben eliminarlos (hacer un backup antes de hacerlo).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Pasos&amp;nbsp;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;1. Ingrese y registrese en&amp;nbsp; &lt;a href="https://forwardemail.net/" target="_blank"&gt;forward email&lt;/a&gt;
&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;img alt="" border="0" data-original-height="662" data-original-width="1327" src="https://blogger.googleusercontent.com/img/a/AVvXsEg1hgrBSAdxwuPszB4ibLFOGMgm9rrR92UpDqFkDcOU23Xva_YMFmxsvJuX-TKEKIf6u3EN_BMhqJ7pEhMVe7iecIZlPR-uQDGzdtl_OgyOpzsZpqDVSq-ZjtWzRsPURwgWVD0GFjYJf50943MRGx-3l34V3zM0Fj-YfWsEQKBz9Z5GPy365KW7PUZBqw" style="margin-left: auto; margin-right: auto;" /&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Registro en Forward Email&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;2. En el panel de&amp;nbsp; &lt;a href="https://forwardemail.net/" target="_blank"&gt;forward email&lt;/a&gt;&amp;nbsp;agregue su dominio (midominio.com). Puede usar la misma cuenta personal de gmail que usó en el registro para el redireccionamiento del dominio o cualquier otra. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;3. Ahora ingrese al panel de su registrador de dominio, entre a la sección de administración DNS y agregue las siguientes entradas:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: 3600 = 1 hora&amp;nbsp;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Agregue dos registros MX, prioridad 10, TTL 1 hora&lt;/div&gt;
&lt;pre class="prettyprint"&gt;@	3600	MX	10	mx1.forwardemail.net
@	3600	MX	10	mx2.forwardemail.net
&lt;/pre&gt; Agregue un registro TXT, TTL 1 hora:
&lt;pre class="prettyprint"&gt;@	3600	TXT	v=spf1 a mx include:spf.forwardemail.net include:_spf.google.com -all
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y agregue un registro TXT, TTL 1 hora (reemplace user@gmail.com por su correo personal de gmail a donde van a ir a parar los correos de miusuario@midominio.com)&lt;/div&gt;
&lt;pre class="prettyprint"&gt;@	3600	TXT	forward-email=user@gmail.com
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u style="text-decoration-line: underline;"&gt;Nota:&lt;/u&gt;&amp;nbsp;Si tiene más de un correo con dominio propio que migró para cuentas de gmail, enumérelas similar a lo siguiente:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;@	3600	TXT	forward-email=hello:user1@gmail.com,support:user2@gmail.com,info:user3@gmail.com
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Debe quedar similar a la siguiente imagen:&lt;/div&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style="text-align: center;"&gt;
        &lt;img alt="" border="0" data-original-height="312" data-original-width="1117" src="https://blogger.googleusercontent.com/img/a/AVvXsEjwz_CY8AtPrV5H0zLQtA-Tm3a6nySaMbf16Zjmzm9d2B9DV0k2lP8kH_aAwSB4AOnsFkFjHx5waxAnltmdfFO7yFZSs08yr_RIopBmz7Nzq1wpkpdFzS2qajAEDowWigLYvexB_sA5odc31V4UP4MuW0gHUNnoRz_JWdEqhVu3xydCdOPx4j8cnWezaQ" style="margin-left: auto; margin-right: auto;" /&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td class="tr-caption" style="text-align: center;"&gt;Configuración MX y TXT en el panel de dominio&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="text-align: justify;"&gt;4. En su cuenta de&amp;nbsp; &lt;a href="https://forwardemail.net/" style="text-align: justify;" target="_blank"&gt;forward email&lt;/a&gt;&amp;nbsp;verifique los cambios: &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="639" data-original-width="1318" src="https://blogger.googleusercontent.com/img/a/AVvXsEg22oBpACMwYCkXub3j0TMMsCEs4eeutqn0mwTkEVNIBWVckJJaVQqefRZocqcLFKs6sxeUhDeaZxgnR1tXxVceJe71hlNyW389mFu0Dde81dYDx-ejPVWlsNefehQfbdbRXSSN6rHqPgJsMI5450xKxhH2Vwk243_4wVsKl0NY9_tgzhGqt5vs-1kWug" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Verificación del registro DNS&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Por lo general tarda menos de una hora, así que no se desespere si al primer intento no verifica correctamente.&amp;nbsp; &lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="661" data-original-width="510" src="https://blogger.googleusercontent.com/img/a/AVvXsEh2xO1CjvJizKJwnKBw9ZLQGYCLJgctUyNYJMxs0Kw5xG-Cr1mePySRadmfHQ58H0ykuH5eTO23P26J0ylT2aZsH6b5ZVVpRLD-LPY0EBX-yLHpJ9_mlxxW7AAi9zlPaaa_4ToJ4LZOmLT7AYm-JwOaH3rMf5E5eXmZOb_i2ZxZsG6O855cAqyHRS2EIQ" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Error de verificación. Debe hacer otro intento en 1 hora&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="402" data-original-width="706" src="https://blogger.googleusercontent.com/img/a/AVvXsEjeVT9VNnqSldYPIdsBNc6lCakt4l4dVVIsNGx78T8dQneDm2xOZKivbPaQ3ecUcAugOuZDwFwE-DMrR63xXNy6MTja9K3kcC9iLWkHvZQD0kyuphPWTtZs8JZYU6KPyxhUqAO1UUuwqXhUJ2uvaqnRsfPGtC5I__YhgxfmsGSjEz8rhFVY1EZ6CQLR3g" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Verificación Exitosa&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;5. Ahora ingrese en su cuenta personal de gmail (que eligió en los pasos anteriores para la redirección) y pulse el enlace&amp;nbsp; &lt;a href="https://myaccount.google.com/apppasswords"&gt;https://myaccount.google.com/apppasswords&lt;/a&gt;. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;6. Seleccione "Correo" en el menú desplegable de la izquierda y seleccione "Otro (nombre personalizado)" en el menú desplegable de la derecha&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="593" data-original-width="735" src="https://blogger.googleusercontent.com/img/a/AVvXsEi2NadZhJTm4GuzKKV3pI2HLtkwPn-CIIyv4XM11jNY1JOkDPS3QcNjC3CZyG0cUTWetlgIWV15rUxctKUSvgpsKoI_C0dtoBigFaQzHcGr75n-b92TsjgTlNi-z4Hi8NL3Ma29etpcAH_YrE1a6XmHusoUuWsfwTOaQDw0Vi2Ma_sSeWbn8Rj5VzfjHg" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Seleccione "Correo" y "Otro (nombre personalizado)"&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Ingrese la dirección de correo electrónico de su dominio personalizado (ejemplo: miusuario@midominio.com).&amp;nbsp;&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="446" data-original-width="727" src="https://blogger.googleusercontent.com/img/a/AVvXsEjdQtHBhtIG-a65S0vFpn55YjDlR1WEdDDn3pg1m4NEEltMblRys3a69Dif_U0wC0n1YdKIK3wly0bjQ0DIUy2DKZZyw9bQZSrSQgwrJyFQsKFtHJkiqoHQ6B1AU83zjaonk_2RoGV7zMz96g3WGMpCgJYG3ZrwcBe9oUkOxVT5j7Qmyq7WnOJv8EQWcg" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Agregando correo con dominio propio&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;7. Se generará una contraseña. Copiela en su portapapeles o en un archivo de texto&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="505" data-original-width="646" src="https://blogger.googleusercontent.com/img/a/AVvXsEi6MFQj_PbADKP5TBGTCQ6zmV5ynt-BuC6EEKRrk--9gIq5PemXIvuxGDP80ebP_p2NmtxunKhVCUxXLcg7MC8NL46IS11QtN8dsdfW1luJxfITsev9-AtVgxh_3cjEij7u_Kin8gnuXYL-nSTB9HOPHcNJK_G6IegEBzlvqjuJH04fhzOEi9h7IC42kA" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Contraseña de un solo uso, generada aleatoriamente por gmail&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="529" data-original-width="682" src="https://blogger.googleusercontent.com/img/a/AVvXsEg4UTV3vJtNaUsZrTlTmup-eZMzFIYKBwRn87-4ZHBGY8OexVRb4R_7qlxU068Ua3flv3elPUEKUWl3fJY_C3wOgScfEC2gRZoq32lgOmNRF9wTq3WnfGZBD3CcJYekCxjx9UtkTMrFJ33hk5EJHIs0foHs4XmCZDVcTyP6FTiC3X52srZ1KrDp4-IDvA" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Registro exitoso del correo con dominio propio en gmail&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;8. Sin salir de la cuenta de Gmail, vaya a "Configuraciones" &amp;gt; "Cuentas e Importación" &amp;gt; "Enviar correo como", haga clic en "Agregar otra dirección de correo electrónico". En el campo "Nombre", ingrese el nombre que le va a dar a su correo electrónico (ejemplo: "Mi Usuario") y en el campo "Dirección de correo electrónico", ingrese el correo electrónico con el dominio personalizado que usó previamente (ejemplo: miusuario@midominio.com) y desmarcar la casilla "Tratar como un alias".&amp;nbsp;&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEj7opOT-PnAmacLnijOWugNJD2c_TABxec4oE7mGC1aJnWgHoEXj6TDaqHyethvFiASJhYbOvsAlq1dfuC7DUvENCk7H4z40VPouH9HkcS41QlSJqH5NBxJNK7GPdCYfPa8nJd6zY5hT_DL92wTwn8Uw8SBM8eKNrns9H6fn2mefNrXx7bC4kCE8V5_8g" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;
            &lt;img alt="" border="0" data-original-height="281" data-original-width="512" src="https://blogger.googleusercontent.com/img/a/AVvXsEj7opOT-PnAmacLnijOWugNJD2c_TABxec4oE7mGC1aJnWgHoEXj6TDaqHyethvFiASJhYbOvsAlq1dfuC7DUvENCk7H4z40VPouH9HkcS41QlSJqH5NBxJNK7GPdCYfPa8nJd6zY5hT_DL92wTwn8Uw8SBM8eKNrns9H6fn2mefNrXx7bC4kCE8V5_8g" /&gt;
          &lt;/a&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Agregando nombre y dirección con dominio propio a gmail&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;En el campo "Servidor SMTP", ingrese smtp.gmail.com, puerto 587 y deje "Conexión segura usando TLS". Y en el campo "Nombre de usuario", solamente coloque la parte de su dirección de Gmail del usuario actual (sin el @gmail.com) y la contraseña aleatoria que generó gmail en el paso 7.&amp;nbsp;&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="206" data-original-width="542" src="https://blogger.googleusercontent.com/img/a/AVvXsEj8qUXPkCcoVCOgZR5xPq0DrvmaI6GKGSZw5pR614V_t2jCPvAsY6hoiybRonha-hN4PAfNNT1suT3tK4uxnl0_wRqmdbs5n7e3T-ZiCRgh0NielspPjnVOLhfXQRJQEIi8RfF5GNrEEQT3DgGC65I92RdIAV711ZYLevN2TEK5WuxUA8zl0ZfFtXkxWQ" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Configuración de envío de mensajes. Debe colocar su usuario de gmail (sin @gmail.com)&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;9. Haga clic en "Agregar cuenta" para continuar y recibirá un código de verificación en su buzón de gmail (revise la carpeta spam).&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="124" data-original-width="540" src="https://blogger.googleusercontent.com/img/a/AVvXsEis1Wsj-V7FP8ZoruHy3aiVfmPR_ztjROyTOlAtKceduqldUByMaBC20my9tOZPZF6I6SZPDJY-Q73nPiik3dOjNcDnZxQbm4FXC36T93kR5dbQBGwFYRXGUOUwJoXedeWys3X1Voo1sfIsJZ9gF2VF7Nk-2hHgoJGZGYCFO5vcnCNludloOBWqok9MEw" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Codigo de verificación (enviado a su buzón de gmail)&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Una vez confirmado, ya puede recibir y enviar correos desde su cuenta de gmail, como su dominio propio. En su gmail debe aparecer la cuenta con dominio propio, con la descripción. Ejemplo:&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="69" data-original-width="336" src="https://blogger.googleusercontent.com/img/a/AVvXsEhjs-7h7OIjNw1TYayx_oeAAshO4SOxpC4CEUVvEzHXcC5ydH-h9Gi-zxpT0YddxGNHKa7WxZSwybIRpnwnB5xfy8iqmyJKyz15-S0qLZFwAgjOiZfQLNOMR2T92Ba6ARCKZ31esGsQ2kGytqNJB4_MST-dffSrmDc0ZGnm9MvWVGRHrjS-wQv3ObedRA" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Descripción del correo con dominio propio registrado en gmail&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Y para aquellos que les gustan que se lo expliquen todo con un video...&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Proceso en Gmail:&lt;/div&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/MEheS8gM4Xs" title="YouTube video player" width="560"&gt;&lt;/iframe&gt;
  &lt;div style="text-align: justify;"&gt;Proceso en Godaddy:&lt;/div&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/G7g8FiZL5D8" title="YouTube video player" width="560"&gt;&lt;/iframe&gt;
  &lt;div style="text-align: justify;"&gt;Para otros registradores pulse &lt;a href="https://www.youtube.com/watch?v=no62GCzMn7E&amp;amp;list=PLOdMT2KU5oSyo2KdV2UG-ax_3WGw9ZVst" target="_blank"&gt;AQUI&lt;/a&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;Importante:&amp;nbsp;&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;- Es muy común que al principio todos los correos vayan a parar a la carpeta spam o silence box. Simplemente sacarlos de ahí y vaya entrenando la IA de Google para evitar esto y con el tiempo dejará de hacerlo&amp;nbsp;&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;- Tenga en cuenta que la propagación de los registros DNS toma tiempo. Deberá ser paciente&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;- El proyecto &lt;a href="https://forwardemail.net/es" target="_blank"&gt;Forward Email&lt;/a&gt;&amp;nbsp;no aloja correos ni contenido en sus servidores, es respetuoso con la privacidad y seguridad de la información, tiene protección contra phishing, ejecutables, virus, etc. Puede reenviar correos con 50MB de límite en adjuntos, filtrado de expresiones regulares, direcciones desechables,&amp;nbsp;soporte integrado para SPF, DKIM, DMARC, ARC y SRS, autenticación de dos factores (2FA) usando una contraseña de un solo uso (OTP), política de seguridad de contenido (CSP), e Integridad de recursos (SRI) y un largo etc. de opciones gratis, más que suficiente para cualquier usuario. Sin embargo, puede que algunos usuarios y empresas requieran de opciones mucho más avanzadas. Para estos casos específicos&amp;nbsp; &lt;a href="https://forwardemail.net/es/pricing" target="_blank"&gt;ofrecen planes&lt;/a&gt;&amp;nbsp;que están muy por debajo de cualquier opción del mercado. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;Consejo no solicitado para los ex-Gsuite&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Asegúrese a la hora de migrar su dominio a otro registrador de ir a las propiedades de dominio en GSuite y desactivar las opciones "desbloquear el dominio" y "desbloquear privacidad (tanto del usuario como del dominio)" y actualice sus datos. Se le enviará un mail de confirmación. Al confirmar vaya a la parte inferior de la administración de dominio de GSuite y pulse el enlace "Transferir dominio fuera de Google Workspace". Finalmente mostrará un código de transferencia, que deberá proporcionar a su nuevo registrador de dominio para iniciar la transferencia, que tarda aproximadamente 7 días máximo.&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;td style="text-align: center;"&gt;
          &lt;img alt="" border="0" data-original-height="417" data-original-width="1103" src="https://blogger.googleusercontent.com/img/a/AVvXsEgohUfqa0zf1qEodtd9SyrYizFpS1pEisakKU-eLxOiQ_OLWID8H7M8KF6g0a9_b212ayPmuOOyduyLV9F2zf3Xi8sPDYB6h2g7l0nQ2Y3DTxTY0jQSV1-qu0ai8fE_9uBW-3HEcfxGC4vA9MwmECV_6dihcSuOZq7HwTWyQvMOw4PqcMvzdWqzJOI5pQ" style="margin-left: auto; margin-right: auto;" /&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td class="tr-caption" style="text-align: center;"&gt;Configuración de registrador de dominio en Gsuite para poder migrar a otro registrador&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;Sugerimos leer los posts&amp;nbsp; &lt;a href="https://www.xataka.com/basics/como-migrar-todo-contenido-cuenta-google-a-otra" target="_blank"&gt;Cómo migrar todo el contenido de una cuenta de Google a otra&lt;/a&gt;&amp;nbsp;o&amp;nbsp; &lt;a href="https://www.adslzone.net/como-se-hace/google/migrar-cuentas-google/" target="_blank"&gt;Cómo cambiar de una cuenta a otra de Google y pasar los datos&lt;/a&gt;, para que puedan realizar la migración el contenido de sus cuentas @midominio.com en GSuite a gmail. &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Una vez migrado los correos y contenido de las cuentas a gmail, confirmado y transferido el dominio a un nuevo registrador, y los nuevos correos con la redirección, puede proceder a eliminar su suscripción de Google Apps, GSuite, Google Workspace o como prefiera llamarle.&amp;nbsp;&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;No todo lo que brilla es oro&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Toda aplicación o servicio siempre tiene algo malo y el proyecto&amp;nbsp; &lt;a href="https://forwardemail.net/" target="_blank"&gt;forward email&lt;/a&gt;&amp;nbsp;no es la excepción. En la "letra pequeña" del proyecto mencionan lo siguiente: &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;a href="https://forwardemail.net/es/faq#:~:text=If%20you%20are%20not%20on%20a%20paid%20plan%2C%20then%20your%20forwarded%20addresses%20will%20be%20publicly%20searchable" target="_blank"&gt;"If you are not on a paid plan, then your forwarded addresses will be publicly searchable"&lt;/a&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Lo anterior significa que no hay privacidad en el redireccionamiento, o sea, el registro TXT del redireccionamiento a gmail será visible a cualquiera que quiera consultarlo. Puede verificarlo con los comandos:&lt;/div&gt;
  &lt;pre class="prettyprint"&gt;nslookup -type=txt midominio.com
dig txt midominio.com
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Y la salida será similar a la siguiente:&lt;/div&gt;
  &lt;pre class="prettyprint"&gt;mmidominio.com	text = "forward-email=micorreo@gmail.com"
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Así las cosas, si usted considera que pesa más el beneficio del proyecto que la privacidad del correo de redireccionamiento, entonces úselo (siempre está la opción de usar un correo que si es comprometido o los spammers lo llenan de basura, lo cierra, crea otro y configura nuevamente la redirección). Caso contrario deberá pagarle un plan al proyecto o sencillamente no utilizarlo y pagar un servicio de correos con un proveedor serio... como Google Workspace.&lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;PD: No olvide activar el 2FA en&amp;nbsp; &lt;a href="https://forwardemail.net/" target="_blank"&gt;forward email&lt;/a&gt;. &lt;/div&gt;
  &lt;br /&gt;
  &lt;div style="text-align: justify;"&gt;
    &lt;b&gt;Actualización 2023&lt;/b&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Si tiene un dominio con TLD común (.com, .net, etc.) no debería preocuparse, pero si tiene dominios restringidos (.gov, .edu, etc.) sepa que&amp;nbsp;&lt;a href="https://forwardemail.net/" target="_blank"&gt;forward email&lt;/a&gt;&amp;nbsp;le exige pasar por caja y comprar un plan. Si este es su caso, puede usar el servicio&amp;nbsp;&lt;a href="https://improvmx.com/" target="_blank"&gt;ImprovMX&lt;/a&gt;, pero es bastante limitado, ya que solo permite gratis 1 dominio, máximo 25 alias/dominio, máximo 500 correos electrónicos entrantes/día, límite de archivos adjuntos de 10 Mb y los emails pueden tardar en redireccionar.&amp;nbsp;&lt;/div&gt;
  &lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV1c6WEgA2svvzQHVkDi01-CD6xC-YvjOkatbmEocgTxnVFjZhus8utaZtvZIUDtcTfR9VMb73g7IK7BCKpBnFSm92tbQPjx-u63INlTHfvTuPzmVVSSsT-tHbkWMUPSmYrID4REkmTFsTFqZw42In-Jmr2_lPWmopAMCBkQwTgpwu444X8_Nio4xDMPQN/s1600/forward-18.png" style="display: block; margin-left: auto; margin-right: auto; padding: 1em 0px; text-align: center;"&gt;&lt;img alt="" border="0" data-original-height="674" data-original-width="1107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV1c6WEgA2svvzQHVkDi01-CD6xC-YvjOkatbmEocgTxnVFjZhus8utaZtvZIUDtcTfR9VMb73g7IK7BCKpBnFSm92tbQPjx-u63INlTHfvTuPzmVVSSsT-tHbkWMUPSmYrID4REkmTFsTFqZw42In-Jmr2_lPWmopAMCBkQwTgpwu444X8_Nio4xDMPQN/s1600/forward-18.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Configuración de&amp;nbsp;ImprovMX&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
  &lt;div style="text-align: justify;"&gt;O está la opción de&amp;nbsp;&lt;a href="https://mailtie.com/" target="_blank"&gt;mailtie&lt;/a&gt;, sin restricciones de TLD, sin registro y sin limites de adjuntos, pero hasta donde hemos probado, los redireccionamientos se pierden, no permite crear varios alias redireccionados a diferentes cuentas y, al igual que en forward email, la información del redireccionamiento no está protegida (será visible, tan solo con hacer un&amp;nbsp; &lt;code&gt;dig txt midominio.com&lt;/code&gt;.). &lt;/div&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Actualización 2024&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Recientemente&amp;nbsp;forward email&amp;nbsp;ha puesto más limitaciones a cuentas gratuitas y dominios gubernamentales y organizaciones sin fines de lucro, y el servicio gratuito de Cloudns y godaddy es limitado. Por tanto, sugerimos que los reemplacen por&amp;nbsp;&lt;a href="https://www.cloudflare.com/es-es/" target="_blank"&gt;Cloudflare&lt;/a&gt;, que tiene todo All-in-one gratis (aparcamiento del dominio, redirección de email, incluso &lt;a href="https://developers.cloudflare.com/fundamentals/setup/manage-domains/redirect-domain/" target="_blank"&gt;redirección de dominio&lt;/a&gt;). Para mayor información consulte &lt;a href="https://blog.cloudflare.com/introducing-email-routing" target="_blank"&gt;AQUÍ&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;DISCLAIMER&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Todos los servicios mencionados anteriormente, no cuentan con protección y pueden ser visibles a atacantes, por tanto siempre recomentaremos que contrate protección a su dominio y correos con un proveedor de confianza.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/3233143223726974270" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/3233143223726974270" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2022/02/correos-con-dominio-propio-en-gmail.html" rel="alternate" title="Correos con dominio propio en gmail" type="text/html"/><author><name>AlejCalero</name><uri>http://www.blogger.com/profile/02041715110092144453</uri><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/b16-rounded.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEjUfzniCXbCmrojvqKBtoqX7TrweE_isBou_Dm0ShKiYSbxrzCq7A-qKjPXSie4Vtl4zZ2yiDJ8IX3DwqGb-4Z25ge9h60JlHmUwKs_OIyPdBggm2ijQSPGtrg6tqn0GfwH6vHkNljRDXYDrkoFrwVCBknFfXnyscarjhQ2Cki9yQq3qPiUdjKhwRLFpg=s72-c" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-3411654714210847372.post-4541930862337290792</id><published>2021-12-03T12:24:00.283-05:00</published><updated>2025-04-29T12:35:27.066-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="full_audit"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="samba"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><title type="text">Samba Full Audit</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
  &lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgrBeHZOcrNJ9s61CeYHYxAvhE2YVxmlDlbkc_VOPoptYqimaxg_X_ybsx6JYRSdgBxlQRI60fX2TUCwy3dsgLXHBbw86vvTPwBzhc6MeZ0OMiZTDEubq386uGX1m2jaZ0LSUz4ykgxxazYkAAC6xYxADqArHmizZCrNYGrMufqB5bLPegm4_-vgSrkxQ=s320" style="margin-left: 1em; margin-right: 1em;"&gt;
    &lt;img border="0" data-original-height="222" data-original-width="320" height="222" src="https://blogger.googleusercontent.com/img/a/AVvXsEgrBeHZOcrNJ9s61CeYHYxAvhE2YVxmlDlbkc_VOPoptYqimaxg_X_ybsx6JYRSdgBxlQRI60fX2TUCwy3dsgLXHBbw86vvTPwBzhc6MeZ0OMiZTDEubq386uGX1m2jaZ0LSUz4ykgxxazYkAAC6xYxADqArHmizZCrNYGrMufqB5bLPegm4_-vgSrkxQ" width="320" /&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En&amp;nbsp; &lt;a href="https://www.maravento.com/2014/09/comparticion-samba.html" target="_blank"&gt;Compartición de Archivos&lt;/a&gt;, hablamos de Samba y cómo compartir un directorio en nuestra red local (a ver si algún día los usuarios finalmente dejan de usar memorias usb para pasarse los archivos... y de paso, malware).&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Hoy le tocó el turno a&amp;nbsp; &lt;a href="https://www.samba.org/samba/docs/current/man-html/vfs_full_audit.8.html" target="_blank"&gt;full_audit&lt;/a&gt;. Este módulo nos permite registrar en un log todo los que sucede con nuestro recurso compartido, los usuarios que acceden, crean, eliminan, modifican archivos y directorios, entre otros parámetros.&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Pero, antes de comenzar, debemos asegurarnos de lo siguiente:&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;1. Instalar samba y componentes (puede variar en dependencia de sus necesidades): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt -y install samba samba-common smbclient winbind cifs-utils
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: Para eliminar:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo apt -y remove --purge samba samba-common cifs-utils smbclient
sudo rm -rf /var/cache/samba /etc/samba /run/samba /var/lib/samba /var/log/samba
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;2. Crear la carpeta que vamos a usar como compartida en nuestra red local (reemplace "your_user" por su usuario y "shared" por el nombre de su carpeta compartida): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;mkdir -p /home/your_user/shared
sudo chown -R nobody.nogroup /home/your_user/shared
sudo chmod -R 777 /home/your_user/shared
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;3. Eventualmente Samba puede crear durante la instalación la carpeta&amp;nbsp; &lt;code&gt;usershares&lt;/code&gt;&amp;nbsp;(herencia de versiones anteriores) y en el caso de que no lo haga es mejor tenerla que no tenerla, pero dejarla solo para uso del usuario de sistema, activando &lt;a href="https://es.wikipedia.org/wiki/Sticky_bit" target="_blank"&gt;Sticky Bit&lt;/a&gt; (para mayor información consulte &lt;a href="https://www.maravento.com/2014/09/comparticion-samba.html" target="_blank"&gt;Compartición de archivos&lt;/a&gt;&amp;nbsp;y &lt;a href="https://www.guia-ubuntu.com/index.php/Samba#usershares" target="_blank"&gt;Samba Usershares&lt;/a&gt;): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;if [ ! -d /var/lib/samba/usershares ]; then sudo mkdir -p /var/lib/samba/usershares; fi
sudo chmod 1775 /var/lib/samba/usershares/
sudo chmod +t /var/lib/samba/usershares/
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;4. Activar reglas en su firewall que permita el acceso a los puertos samba (opcional NetBios): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;# NETBios (137,138,139), Microsoft-DS and SMB (445)
lan=enp2s0 # cámbielo por su interfaz de red
for protocol in $(echo tcp udp); do
iptables -A INPUT -i $lan -p $protocol -m multiport --dports 137,138,139,445 -j ACCEPT
iptables -A FORWARD -i $lan -p $protocol -m multiport --dports 137,138,139,445 -j ACCEPT
done
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;5. Tener declarado en nuestro archivo de configuración &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt; los paŕametros básicos globales (las configuraciones pueden variar en dependencia de las necesidades del usuario) (en &lt;code&gt;interfaces&lt;/code&gt; reemplace &lt;code&gt;eth1&lt;/code&gt;&amp;nbsp;por su interfaz de red y el rango &lt;code&gt;192.168.0.0/24&lt;/code&gt; por el de su red local) &lt;/div&gt;
&lt;pre class="prettyprint"&gt;workgroup = WORKGROUP
server string = %h server
dns proxy = no
domain master = no
prefered master = no
local master = no
unix extensions = no
invalid users = root bin daemon adm sync shutdown halt mail news uucp operator
interfaces = lo eth1 127.0.0.1 192.168.0.0/24
max log size = 1000
server role = standalone server
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully*
map to guest = bad password
security = user
valid users = nobody
guest account = nobody
log file = /var/log/samba/audit.log
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;6. Declarar nuestra carpeta compartida (reemplace el "path" y nombre de su recurso compartido): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;[shared]
comment = shared
# change path
path = /home/your_user/shared
public = yes
read only = no
writeable = yes
browseable = yes
valid users = nobody
guest ok = yes
available = yes
printable = no
create mask = 0777
directory mask = 0777
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u style="text-align: left;"&gt;Nota&lt;/u&gt;
  &lt;span style="text-align: left;"&gt;: Tenga presente que hasta aquí hemos creando un recurso compartido de acceso público. Si es lo que quiere, salte al &lt;a href="#punto8"&gt;punto 8&lt;/a&gt;
  &lt;/span&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para aplicar restricciones al recurso debe ponerle credenciales y para esto debe crear un usuario samba. Tenga en cuenta que&amp;nbsp;a partir de la versión 4.x, Samba tiene la capacidad de ejecutarse como un controlador de dominio AD, por tanto no es necesario tener un usuario estándar de Linux/Unix para cada usuario de Samba que se crea. Para mayor información consulte&amp;nbsp; &lt;a href="https://conpilar.es/como-agregar-un-usuario-de-samba-en-linux/" target="_blank"&gt;Cómo agregar un usuario de Samba en Linux&lt;/a&gt;.&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Una vez agregado el/los usuario/s verifique con: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo pdbedit -L
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Si no sale nada es porque no lo agregó a samba&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo smbpasswd -a your_user # cambie 'your_user' por el nombre del usuario a agregar a samba
New SMB password:
Retype new SMB password:
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Si se equivoca puede eliminarlo &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo smbpasswd -x usuario
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Ahora debe agregar los usuarios que van a ingresar al recurso. Por tanto debe reemplazar: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;valid users = nobody
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;por el/los usuario/s. Ejemplo: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;valid users = user1, user2, user3
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para administrar el recurso, reemplace "your_user" por el usuario administrador (pueden ser varios pero no se recomienda): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;admin users = your_user
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Opcional: puede utilizar un solo usuario Unix para todos los usuarios que se conecten a este servicio. Para hacerlo, reemplace "your_user" por el usuario elegido: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;force user = your_user
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Al final quedaría el recurso configurado más o menos así (ejemplo: carpeta compartida "download" con restricciones):&lt;/div&gt;
&lt;pre class="prettyprint"&gt;[download]
comment = download
path = /home/user/download
writeable = yes
read only = no
create mask = 0774
directory mask = 0777
# todos los usuarios con acceso a la carpeta
valid users = user1, user2, user3
# usuario administrador
admin users = your_user
# Opcional: Todos los archivos se escriben como este usuario
force_user = your_user 
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;a name="punto8"&gt;8&lt;/a&gt;. Si quiere agregar un veto de extensiones de archivos en su recurso compartido consulte&amp;nbsp; &lt;a href="https://www.maravento.com/2017/05/veto-files.html " target="_blank"&gt;Veto Files&lt;/a&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;9. Si va a usar firma SMB ( &lt;a href="https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/overview-server-message-block-signing" target="_blank"&gt;SMB sign&lt;/a&gt;) (recomendado), ejecute con privilegios administrativos los siguientes comandos en la consola &lt;code&gt;cmd&lt;/code&gt; de sus equipos Windows (consulte la documentación &lt;a href="https://docs.microsoft.com/es-es/archive/blogs/josebda/the-basics-of-smb-signing-covering-both-smb1-and-smb2" target="_blank"&gt;AQUÍ&lt;/a&gt;): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;reg add "HKLM\System\CurrentControlSet\services\LanmanWorkstation\Parameters" /v "RequireSecuritySignature" /t REG_DWORD /d 1 /f
reg add "HKLM\System\CurrentControlSet\services\LanmanServer\Parameters" /v "RequireSecuritySignature" /t REG_DWORD /d 1 /f
reg add "HKLM\System\CurrentControlSet\services\LanmanServer\Parameters" /v "EnableSecuritySignature" /t REG_DWORD /d 1 /f
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Importante:&lt;/u&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Windows 7/8/10/11 ya trae por defecto &lt;code&gt;1&lt;/code&gt; en &lt;code&gt;EnableSecuritySignature&lt;/code&gt; para &lt;code&gt;LanmanWorkstation&lt;/code&gt;&amp;nbsp;por tanto lo anterior no es necesario para esta clave &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Para deshabilitar la firma cambie el &lt;code&gt;1&lt;/code&gt; por &lt;code&gt;0.&amp;nbsp;&lt;/code&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Si ejecuta los anteriores comandos y no está presente la activación de la firma en&amp;nbsp; &lt;code&gt;smb.conf&lt;/code&gt;&amp;nbsp;sus equipos perderán la conexión con el recurso compartido. Para activarla&amp;nbsp; &lt;a href="https://www.samba.org/samba/security/CVE-2016-2114.html" target="_blank"&gt;agregue lo siguiente&lt;/a&gt;&amp;nbsp;debajo de la plantilla &lt;code&gt;[global]&lt;/code&gt;: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;# smb v4.14 and later
server signing = mandatory
server min protocol = SMB3
server smb encrypt = required
# smb v4.13 or earlier
smb encrypt = required
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Opciones por defecto según &lt;a href="https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html#SERVERMAXPROTOCOL" target="_blank"&gt;manual&lt;/a&gt;: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;server signing = # default, auto, mandatory, disabled
server min protocol = # SMB2, SMB3, LANMAN1, LANMAN2, NT1
server smb encrypt = # default, off, if_required, desired, required
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Importante:&lt;/u&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Las opciones de &lt;code&gt;min protocol&lt;/code&gt; y &lt;code&gt;max protocol&lt;/code&gt; son: SMB2 (incluye SMB2_02, SMB2_10 -win7 default-), SMB3 (incluye: SMB3_00 -win8-, SMB3_02 -win8.1-, SMB3_11 -win10 default-), LANMAN1 y LANMAN2 (Soporte de nombre de archivo largo) y&amp;nbsp;NT1 (conocido como CIFS -winNT-) . La opción SMB&amp;nbsp;está descontinuada &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- A partir del protocolo SMB2&amp;nbsp; &lt;a href="https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html#:~:text=services%20%3D%20%2Ds3fs%2C%20%2Bsmb-,server%20signing,-(G)" target="_blank"&gt;ya no se puede deshabilitar la firma&lt;/a&gt;&amp;nbsp;(o sea no se puede usar el parámetro &lt;code&gt;server signing = disable&lt;/code&gt;&amp;nbsp;y si se establece en deshabilitado, se tratará como automático) y tampoco se puede usar &lt;code&gt;security = share&lt;/code&gt; y &lt;code&gt;server signing&lt;/code&gt;
  &lt;a href="https://lists.samba.org/archive/samba/2010-November/159269.html" target="_blank"&gt;al mismo tiempo&lt;/a&gt;.&amp;nbsp;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Cuando se establece en automático (auto) o predeterminado (default), se ofrece cifrado, pero no se aplica. Cuando se establece en obligatorio (mandatory), se requiere el cifrado.&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- A partir de SMB3 (y superior) soporta cifrado completo (autenticación, transporte de datos, etc.), pero puede generar incompatibilidades con algunos equipos y sistemas operativos antiguos (anterior a Windows 8 y Windows Server 2012) o desactualizados. Si quiere garantizar retro-compatibilidad en su red local utilice SMB2, pero no tendrá cifrado completo.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Si no tiene en cuenta la versión de Samba al usar el parámetro &lt;code&gt;smb encrypt&lt;/code&gt;&amp;nbsp;saldrá el mensaje de error &lt;code&gt;Unknown parameter encountered: "server smb encrypt"&lt;/code&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Para mayor información sobre los parámetros en &lt;code&gt;smb.conf&lt;/code&gt; ejecute en el terminal &lt;code&gt;man smb.conf&lt;/code&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Activando módulo full_audit&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y al fin llegamos a lo que nos interesa. Para activar el módulo debemos editar&amp;nbsp; &lt;code&gt;/etc/samba/smb.conf&lt;/code&gt; y agregar a la plantilla &lt;code&gt;[global]&lt;/code&gt;: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;vfs objects = full_audit
full_audit:prefix = %I|%m|%S
full_audit:success = mkdirat pread pwrite renameat unlinkat create_file
full_audit:failure = none
full_audit:facility = LOCAL7
full_audit:priority = notice
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nomenclatura:&lt;/u&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- &lt;code&gt;vfs objects&lt;/code&gt;: Carga del módulo full_audit &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- &lt;code&gt;full_audit:prefix&lt;/code&gt;: Variables que se almacenarán en el log (usuario, IP, nombre del equipo, nombre de la carpeta compartida, etc.) &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- &lt;code&gt;full_audit:failure&lt;/code&gt;: Operaciones a registrar si hay error (se usan los mismos valores que &lt;code&gt;full_audit:success&lt;/code&gt;). En el ejemplo usamos la opción &lt;code&gt;none&lt;/code&gt; para no dejar registros de los fallos &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- &lt;code&gt;full_audit:facility&lt;/code&gt;: &lt;code&gt;LOCAL5&lt;/code&gt; (si va a registrar en un LOG individual) o &lt;code&gt;LOCAL7&lt;/code&gt; (en &lt;code&gt;syslog&lt;/code&gt;) &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- &lt;code&gt;full_audit:priority&lt;/code&gt;: Niveles de registro (notice, info, debug, warning, alert) &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- &lt;code&gt;full_audit:success&lt;/code&gt;: Operaciones que se registrarán en el log (obtenga la lista completa de opciones&amp;nbsp; &lt;a href="https://www.samba.org/samba/docs/current/man-html/vfs_full_audit.8.html" target="_blank"&gt;AQUÍ&lt;/a&gt;) &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;ul&gt;
    &lt;li&gt;
      &lt;code&gt;mkdirat&lt;/code&gt;: creación de carpetas
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;renameat&lt;/code&gt;: renombrado o manipulación de archivos
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;unlinkat&lt;/code&gt;: borrado de archivos y carpetas
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;create_file&lt;/code&gt;: creación archivos (genera mucha información basura)
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;pwrite&lt;/code&gt;: escritura de archivos
    &lt;/li&gt;
    &lt;li&gt;
      &lt;code&gt;pread&lt;/code&gt;: apertura de archivos
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;- &lt;code&gt;%I&lt;/code&gt;: Dirección IP del cliente &lt;/div&gt;
&lt;div&gt;- &lt;code&gt;%m&lt;/code&gt;: NetBIOS del cliente &lt;/div&gt;
&lt;div&gt;- &lt;code&gt;%S&lt;/code&gt; recurso solicitado (en este caso la carpeta compartida) &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Importante:&lt;/u&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- Si tiene varias carpetas en&amp;nbsp; &lt;code&gt;smb.conf&lt;/code&gt;&amp;nbsp;y la cláusula los parámetros full audit están debajo de la plantilla &lt;code&gt;[global]&lt;/code&gt; pero encima de las configuraciones de sus carpetas, entonces auditará todas las carpetas configuradas en &lt;code&gt;smb.conf&lt;/code&gt;. Si desea limitar la auditoría a una carpeta específica (ejemplo: la compartida), entonces pase la cláusula &lt;code&gt;vfs objects = full_audit&lt;/code&gt; (o &lt;code&gt;full_audit recycle&lt;/code&gt; si tiene papelera de reciclaje) al final de los parámetros de dicha carpeta en&amp;nbsp; &lt;code&gt;smb.conf&lt;/code&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- A partir de Samba 4 y si agrega un parámetro inexistente o descontinuado (como &lt;code&gt;rmdir&lt;/code&gt;, &lt;code&gt;rename&lt;/code&gt; o &lt;code&gt;mkdir&lt;/code&gt;) aparecerá en el log el registro el mensaje &lt;code&gt;Could not find opname rename, logging all&lt;/code&gt; y se activarán todas las opciones de full_audit y su log se llenará de datos (inservibles). Para mayor información consulte &lt;a href="https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1950803" target="_blank"&gt;Bug Samba vfs_full_audit reports everything&lt;/a&gt;&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;- El parámetro &lt;code&gt;%m&lt;/code&gt; trabaja conjuntamente con el demonio &lt;code&gt;nmbd&lt;/code&gt; y para que funcione debe activar &lt;code&gt;smb ports = 139&lt;/code&gt; en &lt;code&gt;smb.conf&lt;/code&gt;. Tenga en cuenta que esto hará que Samba no escuche en el puerto &lt;code&gt;445&lt;/code&gt; y permitirá que la funcionalidad de inclusión funcione como hizo con Samba 2.x, pero su red local puede perder el acceso al recurso compartido (A partir de la version 4.13.14 ya no es necesario activar este puerto en &lt;code&gt;smb.conf&lt;/code&gt; para que muestre en &lt;code&gt;audit.log&lt;/code&gt; el nombre de los equipos que se conectan al recurso compartido). &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;LOCAL5 vs LOCAL7&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Con &lt;code&gt;LOCAL7&lt;/code&gt; los registros se guardan en &lt;code&gt;syslog&lt;/code&gt;. Para independizar los registros de auditoría es más cómodo &lt;code&gt;LOCAL5&lt;/code&gt;: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;full_audit:facility = LOCAL5
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para esto editamos:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;/etc/rsyslog.d/50-default.conf
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y agregamos la siguiente línea (preferentemente en la cabecera para que sea prioritaria):&lt;/div&gt;
&lt;pre class="prettyprint"&gt;local5.* /var/log/samba/audit.log
&amp;amp; stop 
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;O abreviando:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;echo -e "local5.* /var/log/samba/audit.log\n&amp;amp; stop" | sudo tee -a /etc/rsyslog.d/50-default.conf&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Lo anterior significa que todos los registros se almacenan en &lt;code&gt;/var/log/samba/audit.log&lt;/code&gt; y la segunda línea evita que se guarden en &lt;code&gt;syslog&lt;/code&gt;. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: Antes de Samba 4 se utilizaba el estado &lt;code&gt;~&lt;/code&gt; pero ya está descontinuado y si lo usa saldrá el error &lt;a href="https://www.rsyslog.com/?s=error+2307" target="_blank"&gt;2307&lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;No olvidemos crear el log si no existe:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;if [ ! -d /var/log/samba ]; then sudo mkdir -p /var/log/samba; fi
sudo touch /var/log/samba/audit.log&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Reiniciamos los servicios:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo systemctl restart rsyslog smbd nmbd winbind
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;o recargarlos:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo smbcontrol all reload-config &amp;amp;&amp;amp; sudo /etc/init.d/rsyslog force-reload
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: Al hacer este cambio &lt;code&gt;rsyslog&lt;/code&gt; puede generar un registro bastante molesto, que si se deja así puede llenar nuestro log rápidamente:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;rsyslogd: action 'action-1-builtin:omfile' suspended (module 'builtin:omfile'), retry 0
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Para solucionarlo, comente las siguientes líneas en &lt;code&gt;/etc/rsyslog.conf&lt;/code&gt; (ejecute los comandos en el terminal): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo cp -f /etc/rsyslog.conf{,.bak}
sudo sed 's/^[^#]*\($FileOwner syslog\|$FileGroup adm\|$FileCreateMode 0640\|$FileCreateMode 0640\|$DirCreateMode 0755\|$Umask 0022\|$PrivDropToUser syslog\|$PrivDropToGroup syslog\)$/#\1/' -i /etc/rsyslog.conf
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;No olvide asegurarse que al final del archivo &lt;code&gt; /etc/rsyslog.conf&lt;/code&gt; se encuentre declarado &lt;code&gt;audit.log&lt;/code&gt; (ejecute el siguiente comando en el terminal): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;grep -qxF '*.none /var/log/samba/audit.log' /etc/rsyslog.conf || echo '*.none /var/log/samba/audit.log' | sudo tee -a /etc/rsyslog.conf
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;u&gt;Nota&lt;/u&gt;: También podemos usar &lt;a href="https://httpd.apache.org/" target="_blank"&gt;Apache&lt;/a&gt; y publicar el log para verlo en el navegador, o supervisarlo con &lt;a href="https://www.webmin.com/" target="_blank"&gt;webmin&lt;/a&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Rotación del log&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para rotar el log edite el archivo:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;/etc/logrotate.d/samba
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y agregue la siguiente información:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;/var/log/samba/audit.log {
weekly
missingok
rotate 7
postrotate
    reload rsyslog &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 || true
endscript
compress
notifempty
}
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Bonus: Full Audit con Papelera de Reciclaje&amp;nbsp;&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Para activar full audit con papelera de reciclaje (Recycle Bin) en la carpeta compartida agregue lo siguiente (los parámetros pueden cambiar según sus necesidades).&amp;nbsp; &lt;span style="text-align: left;"&gt;Para mayor información consulte&amp;nbsp;&lt;/span&gt;
  &lt;a href="https://www.alcancelibre.org/staticpages/index.php/como-samba-papelera" style="text-align: left;" target="_blank"&gt;Cómo configurar Samba con Papelera de Reciclaje&lt;/a&gt;:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;## SAMBA FULL AUDIT AND RECYCLE BIN ###
vfs objects = full_audit recycle
full_audit:prefix = %I|%m|%S
full_audit:success = mkdirat pread pwrite renameat unlinkat
full_audit:failure = none
full_audit:facility = LOCAL5
full_audit:priority = notice
recycle:repository = recycle/%U
recycle:directory_mode = 0777
recycle:touch = yes
recycle:keeptree = yes
recycle:versions = yes
recycle:noversions = *.doc*/*.ppt*/*.xls*/*.pdf/*.dat/*.ini
recycle:exclude = *.tmp|*.temp|*.o|~$*|*.~??|*.log|*.trace|*.TMP|*.asv
recycle:exclude_dir = /temp|/tmp|/cache|/.Trash-1000
recycle:maxsize = 0
recycle:mode = KEEP_DIRECTORIES|VERSION|TOUCH
hide files = /recycle/
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Vaciado de la Papelera de Reciclaje cada 7 días en crontab: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;@weekly find ~/shared/recycle/* -mtime +7 -exec rm -rf "{}" \; &amp;gt;/dev/null
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Concluyendo, este módulo es bastante útil, pero no espere milagros. Samba cambia los parámetros con cada versión (a veces son necesarios y a veces no), los manuales no los actualizan a tiempo y en ocasiones los cambios son tantos que es difícil seguirles el paso.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Actualización 2022&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Tenga en cuenta la &lt;a href="https://blog.segu-info.com.ar/2022/02/vulnerabilidad-grave-en-samba-afecta.html" target="_blank"&gt;nueva vulnerabilidad&lt;/a&gt; de Samba a la hora de configurarlo &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;Actualización 2023&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;En las versiones de samba 4x muchas cosas han cambiado, como era de esperarse, es dificil seguirle el paso a esta gente. Hay un montón de cosas que ya no son necesarias, o es mejor que samba las administre y otras que son opcionales y se pueden personalizar.&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Esta es mas o menos la lista de lo que hemos podido detectar (lo que está comentado con ";" es mejor que samba lo administre, excepto las reglas "opcional" que pueden personalizarlas. Reemplace "your_user por el nombre del usuario samba): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;# smb port for NetBIOS
;   smb ports = 445 139

# NetBIOS name
;   netbios name = your_user

# hosts allow (opcional)
;   hosts allow = 127.0.0.1, 192.168.0.0/24

# hosts deny (ALL, 0.0.0.0/0 150.203.4. badhost.mynet.edu.au etc.) (opcional)
;   hosts deny = ALL

# Prevent Samba´s services to manage the network (Domain Controller like a WinNT Server, or similar)
;   domain master = auto
;   local master = yes
;   preferred master = auto

# Windows Internet Name Service (WINS)
;   wins support = no

# Extended Attributes (opcional)
;   ea support = yes

# Store dos attributes
;   store dos attributes = yes
;   map archive = yes
;   map hidden = no
;   map system = no
;   map readonly = no

# Shared printers on samba server (si el servidor no tiene impresoras compartidas use esta configuración)
load printers = no
disable spoolss = yes

# winbindd will store user credentials from successful logins encrypted in a local cache.
winbind offline logon = no

# security users
security = user
guest account = your_user

# smb sign and smb protocol
server signing = mandatory
server min protocol = SMB3

# Encrypt (opcional)
# Important: This rule activates username and password to access shared resources
# for v4.13 or earlier
;   smb encrypt = required
# for v4.14 or higher
;   server smb encrypt = required

# Symlink race allows access outside share definition
# https://www.samba.org/samba/security/CVE-2017-2619.html
unix extensions = no

# Log Level (default: log level = 0)
;   log level = 1

# Deprecated
;   syslog = 0
;   syslog only = yes
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Referente al módulo &lt;code&gt;full_audit&lt;/code&gt;, es necesario configurar &lt;code&gt;rsyslog&lt;/code&gt; para que pueda funcionar correctamente, ya que este tema de los registros personalizados es un poco enreversado. Entonces, es necesario primero corregir las reglas full audit en &lt;code&gt;smb.conf&lt;/code&gt; quedando así. En la sección Global: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;[global]
# SAMBA FULL AUDIT AND RECYCLE BIN
# NOMENCLATURE
# mkdirat: Create folders/directories | Creación de carpetas/directorios
# rmdir: Delete folders/directories | Borrado de carpetas/directorios
# pread: Open files (read) | Archivos abiertos (lectura)
# pwrite: New files (created or uploaded) | Nuevos ficheros (creados o subidos)
# renameat: Rename files | Renombrado de archivos
# unlinkat: Delete files | Borrado de archivos
# full audit
full_audit:logfile = /var/log/samba/fullaudit.log
full_audit:prefix = %I|%m|%S
full_audit:success = mkdirat read pread write pwrite renameat unlinkat
full_audit:failure = none
full_audit:facility = LOCAL5
full_audit:priority = notice
# recycle
recycle:repository = recycle/%U
recycle:directory_mode = 0777
recycle:touch = yes
recycle:keeptree = yes
recycle:versions = yes
recycle:noversions = *.doc*/*.ppt*/*.xls*/*.pdf/*.dat/*.ini
recycle:exclude = *.tmp|*.temp|*.o|~$*|*.~??|*.log|*.trace|*.TMP|*.asv
recycle:exclude_dir = /temp|/tmp|/cache|/.Trash-1000
recycle:maxsize = 0
recycle:mode = KEEP_DIRECTORIES|VERSION|TOUCH
hide files = /recycle/
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y al final de la información de la carpeta compartida que pretendemos hacerle auditoría. Ejemplo: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;[compartida]
comment = compartida
path = /home/your_user/compartida
public = yes
read only = no
writeable = yes
browseable = yes
valid users = nobody your_user
force user =
guest ok = yes
guest only = yes
available = yes
printable = no
create mask = 0777
directory mask = 0777
# Full Audit and Recycle
vfs objects = full_audit recycle
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y ahora configurar los registros de rsyslog. Antes que nada elimine cualquier configuración personalizada (que mencionamos anteriormente) de &lt;code&gt;/etc/rsyslog.conf&lt;/code&gt; y edite el archivo &lt;code&gt;/etc/rsyslog.d/50-default.conf&lt;/code&gt; y agregue la siguiente regla ANTES de la directiva de &lt;code&gt;syslog&lt;/code&gt;, quedando de la siguiente manera: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;# fullaudit rule
if $PRI == 173 then {
   /var/log/samba/fullaudit.log
 stop
}
# First some standard log files.  Log by facility.
#
auth,authpriv.*			/var/log/auth.log
*.*;auth,authpriv.none		-/var/log/syslog
#cron.*				/var/log/cron.log
#daemon.*			-/var/log/daemon.log
kern.*				-/var/log/kern.log
#lpr.*				-/var/log/lpr.log
mail.*				-/var/log/mail.log
#user.*				-/var/log/user.log
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;O desde el terminal de comandos, ejecutar: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;sudo sed -i '/# First some standard log files.  Log by facility./i # fullaudit rule\nif $PRI == 173 then {\n   /var/log/samba/fullaudit.log\n stop\n}' /etc/rsyslog.conf
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Bueno, aquí surge la primera pregunta: Por qué los cambios deben hacerse en &lt;code&gt;/etc/rsyslog.d/50-default.conf&lt;/code&gt; y no en &lt;code&gt;/etc/rsyslog.conf&lt;/code&gt;? &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;La respuesta es "depende". Para saberlo ejecute el siguiente comando:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;# deteniendo el servicio
sudo systemctl stop syslog.socket rsyslog.service
# verificando que esté detenido
ps ax | grep rsyslog | grep -v grep
# iniciando el servicio con la opción "-o":
sudo /usr/sbin/rsyslogd -o out.txt
# verificando que esté iniciado con esta opción:
ps ax | grep rsyslog | grep -v grep
294400 ?        Ssl    0:00 /usr/sbin/rsyslogd -o out.txt
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y si en la cabecera del archivo &lt;code&gt;out.txt&lt;/code&gt; aparece algo como esto: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;##### BEGIN CONFIG: /etc/rsyslog.d/50-default.conf (put on stack)
# etc etc etc etc......
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Indica que &lt;code&gt;rsyslog&lt;/code&gt; inicia primero en la sección &lt;code&gt;/etc/rsyslog.d/50-default.conf&lt;/code&gt;, y como las reglas se leen en órden, la configuración personalizada deberá ir ahí. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Y que carajos es &lt;code&gt;$PRI == 173&lt;/code&gt;? &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Como bien lo explica &lt;a href="https://github.com/rsyslog/rsyslog/issues/5214#issuecomment-1690031368" target="_blank"&gt;David Lang en el issue 5214&lt;/a&gt;: "All the logs has a PRI value of 173" (ver la tabla PRI para local5 &lt;a href="https://techdocs.broadcom.com/us/en/symantec-security-software/identity-security/privileged-access-manager/4-0/reference/messages-and-log-formats/syslog-message-formats/syslog-priority-facility-severity-grid.html" target="_blank"&gt;AQUI&lt;/a&gt;).&amp;nbsp; &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Este tipo de nivel de depuración se puede ver si activamos la siguiente regla en &lt;code&gt;/etc/rsyslog.conf&lt;/code&gt;: &lt;/div&gt;
&lt;pre class="prettyprint"&gt;if $syslogtag == "smbd_audit:" then /var/log/samba/debug.log;RSYSLOG_DebugFormat
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Y la salida en &lt;code&gt;debug.log&lt;/code&gt;, al comienzo de cada registro saldrá lo siguiente (en 'your_user' aparecerá el usuario de su servidor samba): &lt;/div&gt;
&lt;pre class="prettyprint"&gt;FROMHOST: 'your_user', fromhost-ip: '127.0.0.1', HOSTNAME: 'your_user', PRI: 173,
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;code&gt;PRI: 173&lt;/code&gt; son mensajes de tipo &lt;code&gt;smbd_audit:&lt;/code&gt;, como estos:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;msg: ' 192.168.1.31|desktop-rm8iodm|shared|unlinkat|ok|/home/user/shared/~$test.xlsx'
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;También puede encontrar otros registros, tales como:&lt;/div&gt;
&lt;pre class="prettyprint"&gt;FROMHOST: 'your_user', fromhost-ip: '127.0.0.1', HOSTNAME: 'your_user', PRI: 86,
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Pero estos corresponden a mensajes similares al siguiente (que no nos interesan):&lt;/div&gt;
&lt;pre class="prettyprint"&gt;msg: ' pam_unix(samba:session): session closed for user
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;code&gt;PRI: 173&lt;/code&gt; viene siendo similar a &lt;code&gt;local5.none&lt;/code&gt;, entonces se puede reemplazar con:
&lt;/div&gt;
&lt;pre class="prettyprint"&gt;*.info;mail.none;authpriv.none;cron.none;local5.none /var/log/messages
local5.* /var/log/samba/fullaudit.log
&amp;amp; stop
&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;Lo importante aquí no es la regla que utilice, sino dónde la va a poner. Debe estár en donde primero lee &lt;code&gt;rsyslog&lt;/code&gt; y si quiere que los mensajes &lt;code&gt;smbd_audit&lt;/code&gt; aparezcan en &lt;code&gt;fullaudit.log&lt;/code&gt; y también en &lt;code&gt;syslog&lt;/code&gt;, puede ponerla al final, pero si quiere evitar duplicados y que solo queden en &lt;code&gt;fullaudit.log&lt;/code&gt;, deberá ponerla al comienzo del archivo de configuración de &lt;code&gt;rsyslog&lt;/code&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
  &lt;b&gt;2025&lt;/b&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Muchos cambios han surgido con samba. Actualmente, con Ubuntu 24.04, que incluye Samba 4.19.5, las cosas son un poco diferentes, en especial con full audit. Por razones que aún desconocemos, muchos módulos han dejado de funcionar. Básicamente, solo funcionan bien &lt;code&gt;mkdirat renameat unlinkat&lt;/code&gt; (activar otros no generan nada o generan mucho ruido en el log) y en ryslog la cosa también cambia. Más o menos viene siendo así: &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Edite &lt;code&gt;/etc/rsyslog.d/50-default.conf&lt;/code&gt; y agregue lo siguiente:
  &lt;pre class="prettyprint"&gt;# fullaudit
if $programname == 'smbd_audit' and not ($msg contains 'pam_unix') then {
    action(type="omfile" file="/var/log/samba/log.audit")
    stop
}
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Con esta acción filtrará los mensajes smbd_audit directamente al log &lt;code&gt;/var/log/samba/log.audit&lt;/code&gt;, excluyendo &lt;code&gt;smbd_audit: pam_unix&lt;/code&gt;
  &lt;/div&gt;
  &lt;div style="text-align: justify;"&gt;Ahora, modifique su &lt;code&gt;smb.comf&lt;/code&gt; y su carpeta a monitorear con &lt;code&gt;full_audit&lt;/code&gt; debe quedar similar a lo siguiente (ejemplo de carpeta pública (cambie &lt;code&gt;your_user&lt;/code&gt; por su usuario de samba o donde esté dicha carpeta, el cual debe coincidir con la directiva &lt;code&gt;guest account =&lt;/code&gt;): &lt;/div&gt;
  &lt;pre class="prettyprint"&gt;[compartida]
   comment = compartida
   path = /path_to/compartida
   guest ok = yes
   guest only = yes
   browseable = yes
   writable = yes
   create mask = 0777
   directory mask = 0777
   public = yes
   force user = your_user
   
   # FULL AUDIT AND RECYCLE BIN
   # mkdirat: Create folders/directories | Creación de carpetas/directorios
   # renameat: Rename files | Renombrado de archivos
   # unlinkat: Delete files | Borrado de archivos
   # full audit
   vfs objects = recycle full_audit
   full_audit:logfile = /var/log/samba/log.audit
   full_audit:prefix = %I|%m|%S
   full_audit:success = mkdirat renameat unlinkat
   full_audit:failure = none
   full_audit:facility = LOCAL5
   full_audit:priority = notice
   # Optional: recycle bin
   recycle:repository = recycle/%U
   recycle:directory_mode = 0777
   recycle:touch = yes
   recycle:keeptree = yes
   recycle:versions = yes
   recycle:noversions = *.doc*/*.ppt*/*.xls*/*.pdf/*.dat/*.ini
   recycle:exclude = *.tmp|*.temp|*.o|~$*|*.~??|*.log|*.trace|*.TMP|*.asv
   recycle:exclude_dir = /temp|/tmp|/cache|/.Trash-1000
   recycle:maxsize = 0
   recycle:mode = KEEP_DIRECTORIES|VERSION|TOUCH
   hide files = /recycle/
&lt;/pre&gt;
  &lt;div style="text-align: justify;"&gt;Asegurese de crear una rotación de ese nuevo log en &lt;code&gt;/etc/logrotate.d/&lt;/code&gt; y darle a la carpeta los permisos y propietario adecuado (que también debe coincidir con la directiva &lt;code&gt;guest account =&lt;/code&gt;. Para mayor información visite el proyecto &lt;a href="https://github.com/maravento/vault/tree/master/gateproxy" target="_blank"&gt;Gateproxy&lt;/a&gt;
  &lt;/div&gt;
  &lt;br /&gt;&lt;/div&gt;</content><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/4541930862337290792" rel="edit" type="application/atom+xml"/><link href="https://www.blogger.com/feeds/3411654714210847372/posts/default/4541930862337290792" rel="self" type="application/atom+xml"/><link href="https://www.maravento.com/2021/12/samba-full-audit.html" rel="alternate" title="Samba Full Audit" type="text/html"/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image height="16" rel="http://schemas.google.com/g/2005#thumbnail" src="https://img1.blogblog.com/img/blank.gif" width="16"/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEgrBeHZOcrNJ9s61CeYHYxAvhE2YVxmlDlbkc_VOPoptYqimaxg_X_ybsx6JYRSdgBxlQRI60fX2TUCwy3dsgLXHBbw86vvTPwBzhc6MeZ0OMiZTDEubq386uGX1m2jaZ0LSUz4ykgxxazYkAAC6xYxADqArHmizZCrNYGrMufqB5bLPegm4_-vgSrkxQ=s72-c" width="72"/></entry></feed>