CodeWithBotina
24 feb 2026 4 min de lectura

Guia Tecnica Completa: Construye un Servidor Web Seguro con Integracion a Active Directory en Ubuntu Server

Guia Tecnica Completa: Construye un Servidor Web Seguro con Integracion a Active Directory en Ubuntu Server

Introducción: ¡Construye Tu Propio Servidor Web con Autenticación Centralizada!

¡Hola, estudiante o desarrollador junior! Si estás estudiando sistemas operativos o quieres aprender a configurar un servidor web profesional desde cero, esta guía es perfecta para ti. Imagina crear un entorno seguro donde usuarios de Active Directory (AD) puedan autenticarse en un sitio WordPress, todo corriendo en Ubuntu Server. Basado en la configuración de Ubuntu 22.04 LTS, te llevaré paso a paso a través de la instalación, integración con AD, hardening de seguridad y más. No necesitas experiencia avanzada; explicaré todo con comandos claros y hasta scripts en Python para automatizar tareas. Al final, tendrás un servidor funcional que puedes usar en proyectos escolares o laborales. ¡Empecemos y conviértete en un sysadmin experto!

Esta guía cubre desde la creación de una VM en VirtualBox hasta el monitoreo, aplicando conceptos como redes, seguridad y autenticación.

Tecnologías y Requisitos: Lo que Necesitas Saber

  • Ubuntu Server 22.04 LTS: Base del sistema.
  • Apache2, PHP, MariaDB: Stack LAMP para el servidor web.
  • Active Directory: Para gestión de usuarios vía LDAP/Kerberos.
  • Herramientas de Seguridad: UFW, Fail2Ban, AppArmor.
  • Python: Usaremos scripts para verificación y automatización (requiere Python 3, incluido en Ubuntu).

Requisitos: VirtualBox, ISO de Ubuntu Server 22.04 (descárgala de ubuntu.com), un servidor Windows con AD configurado (IP: 192.168.101.10, dominio: empresa.local).

Parte 1: Instalación y Configuración Básica

Sigue los pasos para instalar Ubuntu en VM.

Código Python: Script para Verificar Configuración Inicial

Usa este script Python ejecutable para chequear la instalación post-boot.

import subprocess
import socket

def check_network():
    """Verifica conexión de red y hostname."""
    try:
        hostname = socket.gethostname()
        print(f"Hostname: {hostname}")
        ip = subprocess.check_output(["ip", "a", "show", "enp0s3"]).decode()
        print(f"IP Info: {ip}")
        ping = subprocess.call(["ping", "-c", "1", "192.168.101.10"])
        if ping == 0:
            print("Ping a Windows DC: Éxito")
        else:
            print("Ping a Windows DC: Fallo")
    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    check_network()

Explicación paso a paso:

  • Importa subprocess para ejecutar comandos bash y socket para hostname.
  • Función check_network: Obtiene hostname, info de IP y prueba ping.
  • Ejecuta: python check_network.py. Útil para verificar red después de instalación.

Parte 2: Configuración de Red y Unión a AD

Configura IP estática y une al dominio.

Código Python: Automatizador de Configuración Netplan

Script para generar y aplicar config Netplan.

import yaml
import subprocess

def generate_netplan_config(interface="enp0s3", ip="192.168.101.20/24", gateway="192.168.101.1", dns=["192.168.101.10", "8.8.8.8"], domain="empresa.local"):
    config = {
        "network": {
            "version": 2,
            "renderer": "networkd",
            "ethernets": {
                interface: {
                    "dhcp4": False,
                    "dhcp6": False,
                    "addresses": [ip],
                    "routes": [{"to": "default", "via": gateway}],
                    "nameservers": {"addresses": dns, "search": [domain]},
                    "optional": True
                }
            }
        }
    }
    with open("/etc/netplan/00-installer-config.yaml", "w") as f:
        yaml.dump(config, f)
    print("Config Netplan generada.")
    subprocess.call(["sudo", "netplan", "apply"])
    print("Config aplicada.")

if __name__ == "__main__":
    generate_netplan_config()

Explicación:

  • Usa yaml para generar archivo (instala si necesitas: sudo apt install python3-yaml).
  • Escribe config y aplica con subprocess.
  • Ejecuta como sudo: sudo python generate_netplan.py.

Incluye todos los pasos del guía original para unión a AD, firewall, etc.

Funcionalidades: Gestión de Usuarios en AD

  • Autenticación LDAP en WordPress.
  • Sudo para grupos AD.
  • Leaderboards... espera, no, enfocados en AD: Usuarios AD pueden loguear en SSH, web.

Ejemplos Prácticos del Mundo Real

  • Educación: Usa en clases de SO para demostrar integración cliente-servidor.
  • Empresa: Implementa para intranets corporativas con autenticación centralizada.
  • Freelance: Configura servidores para clientes con AD, agregando valor con hardening.
  • Personal: Monta un blog seguro con login AD para familia/equipo.

Parte 3: Instalación LAMP y WordPress

Sigue los comandos para Apache, MariaDB, PHP y WordPress con auth AD.

Código Python: Verificador de Servicios

import subprocess

def check_services(services=["apache2", "mariadb", "sssd"]):
    """Verifica estado de servicios."""
    for service in services:
        status = subprocess.check_output(["systemctl", "is-active", service]).decode().strip()
        print(f"{service}: {status}")

if __name__ == "__main__":
    check_services()

Explicación: Usa subprocess para chequear si servicios están active. Ejecuta: python check_services.py.

Incluye hardening, monitoreo con Monit, backups.

Conclusión: ¡Tu Servidor Está Listo para el Mundo Real!

¡Increíble trabajo! Has construido un servidor web completo con integración AD, seguridad robusta y automatización. Experimenta, modifica y aplica en proyectos reales. ¡Sigue aprendiendo y domina los sistemas operativos!

Autor: Diego Alejandro Botina (CodeWithBotina)

Referencias

0 Me gusta 0 No me gusta 0 total

Cargando reacciones...

Comentarios (0)

Cargando sesión...

Aún no hay comentarios. Sé el primero en comentar.

Volver a todas las publicaciones