Clientes-Virtuales

Este proyecto consiste en el diseño, despliegue y administración de una infraestructura de red profesional basada en software libre, combinando virtualización de alto rendimiento con servicios de directorio activo corporativo. 🚀 Proyecto: Infraestructura de Red con Samba AD DC y Virtualización KVM

Este documento recoge la configuración completa, scripts de automatización y procedimientos de administración para un entorno de red basado en Ubuntu Server, gestionando identidades mediante Samba 4 y máquinas virtuales mediante KVM. 🌐 1. Configuración del Servidor (Bridge y Dominio)

Este script (dominio_final.sh) configura automáticamente la red en modo puente, instala los requisitos y provisiona el dominio. Bash

#!/bin/bash
# --- 1. CONFIGURACIÓN AUTOMÁTICA DE RED (BRIDGE) ---
PHYS_IFACE=$(ip -4 route | grep default | awk '{print $5}' | head -n1)
IP_ACTUAL=$(ip -4 addr show "$PHYS_IFACE" | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -n1)
GW_ACTUAL=$(ip -4 route | grep default | awk '{print $3}' | head -n1)

echo "🌐 Configurando Bridge br0 sobre $PHYS_IFACE..."
sudo ip link add name br0 type bridge 2>/dev/null
sudo ip link set br0 up
sudo ip addr flush dev "$PHYS_IFACE"
sudo ip link set "$PHYS_IFACE" master br0
sudo ip addr add "$IP_ACTUAL/24" dev br0
sudo ip route add default via "$GW_ACTUAL" dev br0

# --- 2. PREPARACIÓN DEL ENTORNO ---
REALM="TECNOLOBATO.LOCAL"
DOMAIN="TECNOLOBATO"
ADMIN_PASS='TecnoLobato2026!'

echo "🛑 Desactivando servicios que bloquean el puerto 53..."
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo rm -f /etc/resolv.conf
echo "nameserver 127.0.0.1" > /etc/resolv.conf
echo "search $REALM" >> /etc/resolv.conf

# --- 3. INSTALACIÓN Y PROVISIÓN ---
echo "⚙️ Instalando Samba AD DC y esquemas necesarios..."
sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt install -y samba krb5-config krb5-user smbclient winbind samba-ad-provision python3-samba

sudo systemctl stop smbd nmbd winbind samba-ad-dc 2>/dev/null
sudo rm -f /etc/samba/smb.conf
sudo rm -rf /var/lib/samba/private/*

echo "🔨 Proviniendo el dominio..."
sudo samba-tool domain provision \
  --server-role=dc \
  --use-rfc2307 \
  --dns-backend=SAMBA_INTERNAL \
  --realm="$REALM" \
  --domain="$DOMAIN" \
  --adminpass="$ADMIN_PASS" \
  --option="dns forwarder = 8.8.8.8" \
  --option="bind interfaces only = yes" \
  --option="interfaces = lo br0"

# --- 4. ARRANQUE Y PERSISTENCIA ---
sudo ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
sudo systemctl unmask samba-ad-dc
sudo systemctl enable samba-ad-dc
sudo systemctl start samba-ad-dc

echo "✅ TODO LISTO. IP del Servidor: $IP_ACTUAL"

🖥️ 2. Automatización de Virtualización (Clonación)

Script (clonar.sh) para duplicar estaciones de trabajo de forma segura. Bash

#!/bin/bash
echo "Máquinas virtuales detectadas:"
sudo virsh list --all

read -p "Introduce el nombre de la VM a clonar: " VM_ORIGINAL
read -p "Introduce el nombre para la nueva VM: " VM_NUEVA

ESTADO=$(sudo virsh domstate "$VM_ORIGINAL")

if [ "$ESTADO" = "running" ]; then
    echo "⚠️ Pausando VM para clonar..."
    sudo virsh suspend "$VM_ORIGINAL"
fi

sudo virt-clone \
  --original "$VM_ORIGINAL" \
  --name "$VM_NUEVA" \
  --file /var/lib/libvirt/images/"$VM_NUEVA".qcow2

if [ "$ESTADO" = "running" ]; then
    sudo virsh resume "$VM_ORIGINAL"
fi
echo "✅ Clonación finalizada."

``

🛠️ 3. Guía de Administración del Directorio
Gestión de Usuarios y Grupos

    Añadir Usuario:
```bash
#!/bin/bash
    sudo samba-tool user add "nombre" "Contraseña123!"

``
      

    Borrar Usuario:
```bash
#!/bin/bash
    sudo samba-tool user delete "nombre"

``

      

    Asignar Administrador:
```bash
#!/bin/bash
    sudo samba-tool group addmembers "Domain Admins" "nombre"

``

      

Unidades Organizativas (OU)

    Crear OU:
```bash
#!/bin/bash
    sudo samba-tool ou create "OU=Alumnos,DC=TECNOLOBATO,DC=LOCAL"

Eliminar OU:
```bash
#!/bin/bash
sudo samba-tool ou delete "OU=Alumnos,DC=TECNOLOBATO,DC=LOCAL"

```

📝 4. Descripción Técnica del Proyecto

Este proyecto implementa una alternativa de código abierto a Windows Server mediante Samba 4 AD DC[cite: 1]. Utiliza virtualización KVM/QEMU para el despliegue de clientes, optimizando el uso de recursos mediante un Bridge de red que otorga conectividad directa a nivel de capa 2 a cada VM[cite: 1].

La infraestructura centraliza la seguridad, las identidades y la resolución de nombres (DNS), permitiendo la administración jerárquica mediante Unidades Organizativas y el control total desde la terminal de Linux[cite: 1].