septiembre 19

Restringir registro de usuarios en phpBB a un dominio de correo

phpBB es uno de los sistemas de foros de código abierto más populares del mundo. Impulsa millones de foros en Internet, desde comunidades pequeñas hasta enormes foros empresariales. Una necesidad común al administrar un foro phpBB es restringir el registro de usuarios a un dominio de correo específico, por ejemplo, solo permitir registros con direcciones de correo de tu empresa. En esta guía te explico cómo hacerlo.

¿Por qué restringir el registro por dominio?

Hay varias razones para limitar los registros a un dominio de correo:

  • Control de acceso — Solo empleados o miembros de una organización pueden registrarse
  • Prevención de spam — Evita registros masivos con correos temporales
  • Identidad verificada — Si alguien tiene un correo de tu dominio, es (probablemente) quien dice ser
  • Cumplimiento — Algunas organizaciones requieren que solo correos corporativos accedan a ciertos recursos

Método 1: Modificación del código de registro

Paso 1: Localizar el archivo

El archivo de registro se encuentra en:

/includes/ucp/ucp_register.php

Paso 2: Añadir la validación de dominio

Busca la sección donde se valida el email (alrededor de la línea 200-250) y añade:

// Restringir a dominio específico
$allowed_domain = 'tudominio.com';
$email_parts = explode('@', $email);
$domain = end($email_parts);

if ($domain !== $allowed_domain) {
    $error[] = 'Solo se permiten registros con correos de ' . $allowed_domain;
}

Paso 3: Verificar

Guarda los cambios e intenta registrarte con un correo de otro dominio. Deberías ver el mensaje de error.

Método 2: Usando una extensión

Si prefieres no modificar el código core, puedes usar una extensión de phpBB:

  1. Ve al ACP (Panel de Administración) → PersonalizacionesExtensiones
  2. Busca «Email Restriction» o «Domain Restriction» en el directorio de extensiones de phpBB
  3. Instala y configura la extensión con tu dominio permitido

Método 3: Validación con expresión regular

Para una validación más robusta, puedes usar una expresión regular que verifique el formato del correo y el dominio:

// Validar formato y dominio
$email = trim($email);
$allowed_domains = array('tudominio.com', 'tudominio.es', 'tudominio.org');

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $error[] = 'El formato del correo no es válido.';
} else {
    $domain = substr(strrchr($email, "@"), 1);
    if (!in_array($domain, $allowed_domains)) {
        $error[] = 'Solo se permiten correos de: ' . implode(', ', $allowed_domains);
    }
}

Consideraciones adicionales

  • Dominios múltiples: Puedes permitir varios dominios si tu organización usa varios
  • Subdominios: La validación debe incluir subdominios si es necesario (ej: *.tudominio.com)
  • Notificación: Considera mostrar un mensaje claro al usuario sobre la restricción antes de que intente registrarse
  • Usuarios existentes: Esta restricción solo afecta a nuevos registros, no a usuarios ya existentes

Conclusión

Restringir el registro de usuarios en phpBB a un dominio de correo es una medida de seguridad sencilla pero efectiva. Ya sea modificando el código, usando una extensión o implementando validación con expresiones regulares, puedes controlar quién tiene acceso a tu foro con muy poco esfuerzo.

Categoría: Docker, Inteligencia Artificial, Seguridad | Comentarios desactivados en Restringir registro de usuarios en phpBB a un dominio de correo
septiembre 17

Archivos de configuración en Proxmox VE: Guía completa

Proxmox VE es una de las plataformas de virtualización empresarial más populares del mercado. Al estar basada en Debian Linux, toda su configuración se almacena en archivos de texto plano en el sistema de archivos. Conocer dónde están estos archivos y cómo editarlos es esencial para cualquier administrador de Proxmox. En esta guía te muestro las rutas más importantes y los archivos que necesitarás modificar.

Archivos de configuración del nodo

/etc/network/interfaces

La configuración de red del nodo Proxmox. Aquí defines las interfaces de red, bridges, VLANs, IPs estáticas y bonding. Es el archivo más importante para la conectividad del servidor.

Ejemplo básico:

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports eno1
    bridge-stp off
    bridge-fd 0

/etc/hostname

El nombre del host del servidor. Debe ser único en la red.

proxmox01

/etc/hosts

Resolución de nombres local. Asegúrate de incluir la IP y nombre del servidor:

127.0.0.1   localhost
192.168.1.100   proxmox01.proxmox.local   proxmox01

Configuración de almacenamiento

/etc/pve/storage.cfg

Define todos los almacenes de datos: locales, NFS, Ceph, iSCSI, ZFS, etc. Cada línea define un almacén con su tipo, contenido y parámetros.

dir: local
    path /var/lib/vz
    content iso,vztmpl,backup

lvmthin: local-lvm
    thinpool data
    vgname pve
    content images,rootdir

nfs: nas-backup
    path /mnt/nfs/backup
    server 192.168.1.50
    export /volume1/backup
    content backup
    options vers=3

Configuración de máquinas virtuales

Cada VM tiene su propio archivo de configuración en:

/etc/pve/qemu-server/<VMID>.conf

Por ejemplo, la VM con ID 100:

/etc/pve/qemu-server/100.conf

Contenido típico:

boot: order=virtio0;ide2;net0
cores: 4
memory: 8192
ostype: l26
scsi0: local-lvm:vm-100-disk-0,size=100G
net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0

Nota: No edites estos archivos manualmente mientras la VM esté en ejecución. Usa la interfaz web o los comandos qm set.

Configuración de contenedores LXC

Los contenedores usan configuración en:

/etc/pve/lxc/<CTID>.conf

Ejemplo:

arch: amd64
cores: 2
hostname: webserver
memory: 2048
ostemplate:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst
rootfs: local-lvm:vm-101-disk-0,size=20G
swap: 512
net0: name=eth0,bridge=vmbr0,ip=192.168.1.101/24,gw=192.168.1.1

Configuración del clúster

Si usas un clúster Proxmox, la configuración se gestiona con Corosync:

  • /etc/pve/corosync.conf — Configuración del clúster Corosync
  • /etc/pve/priv/authorized_keys — Claves SSH compartidas entre nodos
  • /etc/pve/priv/known_hosts — Hosts conocidos del clúster

Configuración de backup

Los trabajos de backup se configuran en:

/etc/pve/jobs.cfg

Logs importantes

  • /var/log/syslog — Log general del sistema
  • /var/log/pve/tasks/ — Logs de tareas de Proxmox
  • /var/log/qemu-server/<VMID>.log — Log de cada VM

Conclusión

Conocer la estructura de archivos de configuración de Proxmox te permite administrar el servidor de forma más eficiente, automatizar tareas con scripts y resolver problemas más rápidamente. Recuerda siempre hacer backup antes de modificar archivos de configuración y usar la interfaz web o los comandos de la API cuando sea posible.

Categoría: Inteligencia Artificial, Linux, Proxmox VE, Redes | Comentarios desactivados en Archivos de configuración en Proxmox VE: Guía completa
abril 24

Eliminar local-lvm y expandir espacio en Proxmox: Guía completa

Cuando instalas Proxmox VE en un servidor, el sistema crea automámente dos particiones en el disco: una para el sistema operativo (local) y otra para almacenamiento de máquinas virtuales y contenedores (local-lvm). En muchos casos, especialmente en servidores con discos grandes, la partición local se queda con muy poco espacio mientras que local-lvm tiene gigabytes sin usar. En esta guía te explico cómo eliminar la partición local-lvm y expandir el espacio de la partición local para aprovechar todo el disco.

¿Por qué hacer esto?

Proxmox VE, por defecto, crea un volumen lvm-thin llamado data dentro del grupo de volúmenes pve. Este volumen se usa para almacenar imágenes de VM, contenedores y backups. Sin embargo, la partición raíz (/dev/pve/root) puede quedarse pequeña si instalaste en un disco grande (por ejemplo, 1TB o más). Al eliminar local-lvm y expandir la partición raíz, tendrás todo el espacio disponible para el sistema operativo, lo que es útil si usas almacenamiento externo (NFS, Ceph, SAN) para tus máquinas virtuales.

Requisitos previos

  • Acceso root al servidor Proxmox (vía SSH o consola)
  • Una copia de seguridad completa de todas las máquinas virtuales y contenedores
  • Al menos un 10% de espacio libre en el volumen que vas a redimensionar
  • IMPORTANTE: Este procedimiento implica modificaciones de particiones. Un error puede causar pérdida de datos. Haz backup antes.

Paso a paso: Eliminar local-lvm y expandir local

Paso 1: Verificar la situación actual

Primero, comprueba cómo están tus particiones y volúmenes:

pvs
lvs
df -h
pvesm status

Verás algo como esto:

PV         VG  Fmt  Attr PSize    PFree
/dev/sda3   pve lvm2 a--  <931.00g  <800.00g
LV          VG  Attr       LSize
data        pve -wi-ao---- <800.00g
root        pve -wi-ao----  <93.00g

Paso 2: Eliminar el volumen lógico data

Si no tienes datos en local-lvm (o ya los migraste), elimina el volumen:

lvremove /dev/pve/data

Confirma la eliminación cuando te lo pida.

Paso 3: Expandir la partición raíz

Ahora que el espacio está libre dentro del grupo de volúmenes, expande el volumen lógico raíz:

lvresize -l +100%FREE /dev/pve/root

Esto asigna todo el espacio disponible al volumen raíz.

Paso 4: Redimensionar el sistema de archivos

Finalmente, redimensiona el sistema de archivos para que ocupe el nuevo espacio del volumen:

resize2fs /dev/mapper/pve-root

Paso 5: Verificar el resultado

Comprueba que todo funcionó correctamente:

df -h
lvs

Deberías ver que la partición / ahora tiene todo el espacio disponible.

Consideraciones importantes

  • Si tienes VMs o contenedores en local-lvm: Mígralos antes a otro almacenamiento (NFS, Ceph, o un disco externo) con qm migrate o pct move-volume.
  • Si usas Ceph: Este procedimiento es aún más recomendable, ya que Ceph proporciona almacenamiento distribuido y no necesitas local-lvm.
  • Espacio mínimo recomendado para el sistema: Deja al menos 30-50GB para el sistema operativo, logs y plantillas de contenedores.

Alternativa: Redimensionar local-lvm sin eliminarlo

Si prefieres conservar local-lvm pero hacerlo más pequeño, puedes redimensionarlo en lugar de eliminarlo:

lvresize -L 200G /dev/pve/data

Esto reduce local-lvm a 200GB, dejando el resto del espacio disponible para expandir root u otros volúmenes.

Conclusión

Eliminar local-lvm y expandir la partición raíz en Proxmox VE es un procedimiento sencillo que te permite aprovechar mejor el espacio en disco. Solo recuerda hacer backup antes y asegurarte de no tener datos importantes en el volumen que vas a eliminar. Con estos pasos, tu servidor Proxmox tendrá una configuración de almacenamiento mucho más eficiente.

Categoría: Inteligencia Artificial, Proxmox VE | Comentarios desactivados en Eliminar local-lvm y expandir espacio en Proxmox: Guía completa