Guía de tecnologías

Instalar y configurar Tripwire en Ubuntu 16.04

9 min read Seguridad Actualizado 21 Oct 2025
Tripwire en Ubuntu 16.04: instalación y configuración
Tripwire en Ubuntu 16.04: instalación y configuración

Intención principal

Instalar y configurar Tripwire Host-Based IDS en Ubuntu 16.04 para detectar modificaciones no autorizadas en archivos y directorios críticos.

Variantes relacionadas

  • instalar tripwire ubuntu 16.04
  • configurar tripwire ubuntu
  • tripwire tutorial en español
  • tripwire host based ids
  • monitorización integridad ficheros linux

Qué haremos

  1. Instalar Tripwire
  2. Configurar la política de Tripwire para Ubuntu
  3. Verificar la configuración y comprobar la integridad
  4. Añadir un nuevo conjunto de reglas (ruleset)
  5. Configurar notificación por correo y una tarea cron

Requisitos previos

  • Ubuntu 16.04 Server
  • Privilegios de root o sudo

Definición rápida

Tripwire: herramienta de integridad de archivos que calcula y comprueba firmas/atributos para detectar cambios inesperados en ficheros y directorios.


Paso 1 - Instalar Tripwire

El primer paso es instalar Tripwire desde los repositorios oficiales de Ubuntu. Actualiza los repositorios e instala el paquete con los siguientes comandos:

sudo apt update
sudo apt install -y tripwire

Durante la instalación se abrirá el asistente de configuración de Postfix. Selecciona “Internet Site” y confirma con “OK” para continuar.

Configuración de Postfix

Para el nombre del sistema de correo, deja el valor predeterminado y elige “OK”.

Nombre del sistema de correo

A continuación se ejecutará la configuración inicial de Tripwire. Crea la “site-key” (clave de sitio) y la “local-key” (clave local) cuando se te solicite — selecciona “Yes” y pulsa Enter.

Clave site-key de Tripwire

Cuando se pida la “local-key”, también elige “Yes”.

Clave local-key de Tripwire

Responde “Yes” para reconstruir la configuración y la política si se solicita.

Reconstruir configuración de Tripwire

Reconstruir política de Tripwire

Introduce una passphrase para la site-key y repítela cuando se te solicite.

Introducir passphrase site-key

Repetir passphrase site-key

Introduce y repite la passphrase para la local-key.

Establecer passphrase local-key

Repetir passphrase local-key

Al finalizar este proceso, Tripwire estará instalado en el sistema.


Paso 2 - Configurar la política de Tripwire para el sistema Ubuntu

Todos los ficheros de configuración de Tripwire se encuentran en /etc/tripwire. Tras la instalación es necesario inicializar la base de datos de Tripwire:

sudo tripwire --init

Se te pedirá la passphrase de la local-key. Si obtienes un error “No such directory” significa que la política referencia rutas que no existen en tu sistema y debes editar el archivo de políticas para comentar o ajustar esas entradas.

Para localizar las rutas inexistentes, ejecuta:

sudo sh -c "tripwire --check | grep Filename > no-directory.txt"
cat no-directory.txt

Esto generará una lista con rutas que Tripwire esperaba controlar y que no existen. Edita la política para comentarlas o ajustar su tipo.

cd /etc/tripwire/
vim twpol.txt

A continuación encontrarás ejemplos de cambios típicos que conviene aplicar al archivo twpol.txt para evitar falsos positivos y problemas con pseudoficheros del kernel.

Ajustes sugeridos en la política

  • Boot Scripts: comentar entradas que no existan en tu sistema.
(
  rulename = "Boot Scripts",
  severity = $(SIG_HI)
)
{
        /etc/init.d             -> $(SEC_BIN) ;
        #/etc/rc.boot           -> $(SEC_BIN) ;
        /etc/rcS.d              -> $(SEC_BIN) ;
  • System Boot Changes: comentar directorios temporales que cambian en cada arranque.
(
  rulename = "System boot changes",
  severity = $(SIG_HI)
)
{
        #/var/lock               -> $(SEC_CONFIG) ;
        #/var/run                -> $(SEC_CONFIG) ; # daemon PIDs
        /var/log                -> $(SEC_CONFIG) ;
  • Root config files: marcar los ficheros estáticos que quieras vigilar y comentar los que no existan.
(
  rulename = "Root config files",
  severity = 100
)
{
        /root                        -> $(SEC_CRIT) ; # Catch all additions to /root
        #/root/mail                  -> $(SEC_CONFIG) ;
        /root/.bashrc                -> $(SEC_CONFIG) ;
        /root/.bash_history         -> $(SEC_CONFIG) ;
  • Devices & Kernel information: evita monitorizar todo /proc o /dev si genera ruido; en su lugar especifica ficheros relevantes.
(
  rulename = "Devices & Kernel information",
  severity = $(SIG_HI),
)
{
        /dev            -> $(Device) ;
        /dev/pts        -> $(Device);
        /dev/shm        -> $(Device);
        /dev/hugepages  -> $(Device);
        /dev/mqueue     -> $(Device);
        #/proc          -> $(Device) ;
        /proc/devices           -> $(Device) ;
        /proc/net               -> $(Device) ;
        /proc/tty               -> $(Device) ;
        /proc/cpuinfo           -> $(Device) ;
        /proc/modules           -> $(Device) ;
        /proc/mounts            -> $(Device) ;
        /proc/dma               -> $(Device) ;
        /proc/filesystems       -> $(Device) ;
        /proc/interrupts        -> $(Device) ;
        /proc/ioports           -> $(Device) ;
        /proc/scsi              -> $(Device) ;
        /proc/kcore             -> $(Device) ;
        /proc/self              -> $(Device) ;
        /proc/kmsg              -> $(Device) ;
        /proc/stat              -> $(Device) ;
        /proc/loadavg           -> $(Device) ;
        /proc/uptime            -> $(Device) ;
        /proc/locks             -> $(Device) ;
        /proc/meminfo           -> $(Device) ;
        /proc/misc              -> $(Device) ;
}

Guarda los cambios y sal del editor.

Recrea el fichero de política cifrado con twadmin:

sudo twadmin -m P /etc/tripwire/twpol.txt

Introduce la passphrase de la site-key. Después, re-inicializa la base de datos:

sudo tripwire --init

Introduce la passphrase de la local-key. Si todo va bien no deberías obtener errores.

Reinicializar base de datos Tripwire

Tripwire ya dispone de una política adaptada al sistema Ubuntu.


Paso 3 - Comprobar la integridad de los ficheros del sistema

Con Tripwire instalado y la política actualizada, puedes ejecutar comprobaciones manuales.

sudo tripwire --check

En un sistema sano verás “No Violation” y “No Error” en la salida.

Ejecutar escaneo Tripwire

Prueba generando una modificación intencionada: crea un fichero en el directorio personal y vuelve a ejecutar la comprobación:

cd ~/
touch hakase-labs.txt
sudo tripwire --check

Tripwire detectará la adición del fichero y el cambio en el directorio padre como violaciones.

Resultado escaneo Tripwire


Paso 4 - Añadir una regla nueva a Tripwire

Para vigilar contenidos web (por ejemplo, WordPress) añade un nuevo ruleset que haga críticos los ficheros bajo /var/www.

Edita twpol.txt:

cd /etc/tripwire/
vim twpol.txt

Al final del archivo añade:

# Ruleset for Wordpress
(
  rulename = "Wordpress Ruleset",
  severity= $(SIG_HI)
)
{
        /var/www        -> $(SEC_CRIT);
}

Guarda y sal. Regenera el fichero de política y re-inicializa la base de datos:

sudo twadmin -m P /etc/tripwire/twpol.txt
sudo tripwire --init

Introduce las passphrases cuando se soliciten.

Ahora prueba creando un fichero o modificando la página index bajo /var/www:

cd /var/www/
touch hakase-labs.txt
echo "

Hakase-labs Tutorial

" > html/index.nginx-debian.html sudo tripwire --check

Verás notificaciones de violación con nivel de seguridad asociado a la regla.

Comprobar violaciones Tripwire


Paso 5 - Configurar notificaciones de Tripwire y cron

Tripwire puede enviar notificaciones por correo configurando la propiedad emailto en la política. Postfix instalado durante el setup del paquete sirve como MTA por defecto.

Prueba la función de correo con:

tripwire --test --email [email protected]

Si recibes el correo, la funcionalidad básica de envío está operativa.

Notificación Tripwire por correo

Edita twpol.txt y añade la directiva emailto dentro del ruleset que quieras notificar, por ejemplo:

# Rules for Web-app
(
  rulename = "Wordpress Rule",
  severity = $(SIG_HI),
  emailto = [email protected]
)

Regenera la configuración y re-inicializa la base de datos:

sudo twadmin -m P /etc/tripwire/twpol.txt
sudo tripwire --init

Para enviar un informe manual por correo tras una comprobación:

sudo tripwire --check --email-report

Deberías recibir un informe en la bandeja de entrada.

Informe Tripwire por correo

Para automatizar las comprobaciones crea una tarea cron para root:

sudo crontab -e -u root

Añade la línea:

0 0 * * * tripwire --check --email-report

Esto ejecutará Tripwire cada día a medianoche y enviará el informe por correo. Reinicia el servicio cron si es necesario:

systemctl restart cron

Configurar cron para Tripwire

Con esto las comprobaciones automáticas y las notificaciones están activas.


Comprobaciones y buenas prácticas de despliegue

  • Antes de desplegar en producción, prueba las reglas en un entorno de staging.
  • Evita monitorizar directorios que cambien constantemente (p. ej. /proc, /dev) salvo ficheros concretos.
  • Mantén seguras las passphrases de site-key y local-key; considéralas parte del secreto operativo.
  • Documenta las reglas personalizadas y el motivo de cada severidad.

Checklist rápido (operaciones)

  • Hacer copia del twpol.txt original
  • Aplicar cambios en twpol.txt
  • twadmin -m P /etc/tripwire/twpol.txt
  • tripwire –init
  • tripwire –check y revisar salida
  • Configurar emailto si aplica
  • Añadir cron si procede

Resolución de problemas comunes

  • “No such directory” al inicializar: generar lista con grep Filename y editar twpol.txt para comentar rutas inexistentes.
  • Correos no llegan: comprobar cola de Postfix (postqueue -p), /var/log/mail.log y reglas de firewall que bloqueen puerto 25.
  • Muchos falsos positivos: identificar ficheros dinámicos y excluirlos o cambiar su tipo de monitorización en la política.

Cuándo Tripwire no es la solución adecuada (contraejemplos)

  • Sistemas con cambios constantes en ficheros por diseño (p. ej. contenedores efímeros) pueden generar demasiado ruido.
  • Para detección en tiempo real de cambios a nivel de kernel podrías preferir herramientas de EDR (Endpoint Detection and Response) o soluciones basadas en inotify/real-time watchers.

Enfoques alternativos y complementarios

  • inotify + scripts personalizados para alertas en tiempo real en archivos concretos.
  • OSSEC/HIDS o Wazuh como alternativas con capacidades centralizadas y gestión de agentes.
  • Sistemas de ficheros inmutables (overlay/immutable images) para reducir la superficie que necesita monitorización.

Mental model y heurística para políticas Tripwire

  • Coste de vigilancia vs beneficio: vigila menos rutas pero críticas (configuración, binarios, web root) en lugar de intentar cubrir todo.
  • Severidad = impacto estimado: SEC_CRIT para ficheros que permiten ejecución o control, SEC_CONFIG para cambios de configuración.
  • Minimiza “ruido” para que las alertas sean accionables.

Playbook/SOP breve para una detección real

  1. Recibir alerta por Tripwire.
  2. Validar: ¿es cambio esperado (despliegue, backup) o inesperado?
  3. Si inesperado: capturar evidencia (hashes, timestamps, owner, salida tripwire), aislar sistema si procede.
  4. Revisar logs (syslog, web, auth) y buscar actividad de usuarios.
  5. Restaurar desde copia conocida si es necesario.
  6. Actualizar política para reducir falsos positivos de cambios legítimos.

Checklist por roles

Administrador de sistemas:

  • Asegurar backups antes de cambiar políticas
  • Mantener claves site/local en almacén seguro

Equipo de seguridad:

  • Definir severidad y notificaciones
  • Revisar alertas diarias y priorizar incidentes

Equipo de desarrollo (si aplica):

  • Coordinar despliegues que modifiquen /var/www para evitar alertas

Mini metodología de despliegue

  1. Preparación: copiar twpol.txt y definir reglas base.
  2. Pruebas: aplicar política en staging y ejecutar tripwire –check repetidas veces.
  3. Ajustes: comentar exclusiones, ajustar severidad.
  4. Producción: importar política a producción con twadmin y tripwire –init.
  5. Operación: programar cron y revisar informes.

Seguridad y privacidad

  • Protege las passphrases y las claves generadas por Tripwire; trata las claves como secretos.
  • Tripwire envía informes por correo: asegura que el MTA está configurado de forma segura (TLS si es necesario) y que no se filtra información sensible.
  • Si tu entorno está sujeto a regulación (p. ej. GDPR), documenta qué datos de auditoría se recopilan y por qué.

Compatibilidad y migración

  • Tripwire explicado aquí corresponde a la versión del paquete disponible en Ubuntu 16.04. En versiones más recientes de Ubuntu, nombres de paquetes o ubicaciones pueden cambiar.
  • Al migrar a un sistema más nuevo, exporta la política y las claves con cuidado y valida las rutas antes de inicializar en el nuevo host.

Ejemplos de criterios de aceptación

  • La instalación se completa sin errores.
  • tripwire –init finaliza sin mensajes “No such directory” tras ajustar la política.
  • tripwire –check muestra “No Violation” en un sistema intacto.
  • Notificación por correo llega tras –email-report.

Diagrama de decisión (flujo de acción)

flowchart TD
  A[Alerta Tripwire] --> B{Cambio esperado?}
  B -- Sí --> C[Registrar y cerrar]
  B -- No --> D[Recolectar evidencia]
  D --> E[Analizar logs y procesos]
  E --> F{Indicios de intrusión?}
  F -- Sí --> G[Aislar sistema y responder]
  F -- No --> H[Restaurar / Notificar equipo]

Glosario 1 línea

  • site-key: clave maestra cifrada para la política de Tripwire.
  • local-key: clave local usada para inicializar la base de datos en un host.
  • ruleset: conjunto de reglas en twpol.txt que definen qué rutas y atributos vigilar.

Resumen final

Tripwire es una herramienta robusta para detectar cambios en ficheros críticos. En este tutorial aprendiste a instalar Tripwire en Ubuntu 16.04, ajustar la política para evitar falsos positivos, añadir reglas específicas para /var/www, probar detecciones, configurar notificaciones por correo y automatizar comprobaciones con cron. Complementa Tripwire con procedimientos operativos, control de claves y revisión de alertas para mantener la eficacia de la monitorización de integridad.

Importante: realiza pruebas en un entorno de staging antes de aplicar reglas estrictas en producción.


Referencias

Autor
Edición

Materiales similares

Podman en Debian 11: instalación y uso
DevOps

Podman en Debian 11: instalación y uso

Apt-pinning en Debian: guía práctica
Sistemas

Apt-pinning en Debian: guía práctica

OptiScaler: inyectar FSR 4 en casi cualquier juego
Guía técnica

OptiScaler: inyectar FSR 4 en casi cualquier juego

Dansguardian + Squid NTLM en Debian Etch
Redes

Dansguardian + Squid NTLM en Debian Etch

Arreglar error de instalación Android en SD
Android

Arreglar error de instalación Android en SD

Conectar carpetas de red con KNetAttach
Redes

Conectar carpetas de red con KNetAttach