Cómo instalar y configurar Tripwire IDS en Debian 10

Tripwire es un sistema de detección de intrusos en Linux, gratuito y de código abierto. Sirve para detectar e informar de cualquier cambio no autorizado en archivos y directorios en Linux. También te enviará una alerta por correo electrónico sobre los cambios en los archivos/directorios. Tripwire funciona comparando el estado actual del sistema de archivos con un estado base conocido e informa si detecta algún cambio.

En este post, te mostraremos cómo instalar y configurar Tripwire en Debian 10.

Requisitos previos

  • Un servidor que ejecute Debian 10.
  • Una contraseña de root configurada en el servidor.

Cómo empezar

En primer lugar, actualiza los paquetes del sistema a la versión actualizada ejecutando el siguiente comando:

apt-get update -y

Una vez actualizados todos los paquetes, puedes pasar al siguiente paso.

Instalar Tripwire

Por defecto, el paquete Tripwire está disponible en el repositorio por defecto de Debian 10. Puedes instalarlo con el siguiente comando:

apt-get install tripwire -y

Durante la instalación, se te pedirá que selecciones la configuración del correo electrónico como se muestra a continuación:

Instalar Tripwire IDS

Selecciona la opción que desees y pulsa ENTER. Se te pedirá que configures un nombre de correo del sistema como se muestra a continuación:

Configuración de Postfix

Proporciona el nombre de tu correo del sistema y pulsa ENTER. Se te pedirá que crees tu frase de contraseña de la clave del sitio como se muestra a continuación:

Frase de paso de Tripwire

Selecciona Sí y pulsa ENTER. Se te pedirá que reconstruyas el archivo de configuración de Tripwire como se muestra a continuación:

Reconstruir el archivo de configuración

Selecciona Sí y pulsa INTRO. Se te pedirá que reconstruyas tu archivo de política de Tripwire como se muestra a continuación:

Reconstruir el archivo de políticas

Selecciona Sí y pulsa INTRO. Se te pedirá que proporciones tu frase de contraseña de la clave del sitio como se muestra a continuación:

Establecer una clave de sitio

Proporciona tu contraseña y pulsa ENTER. Se te pedirá que establezcas tu frase de contraseña de la clave local como se muestra a continuación:

Establecer la frase de contraseña local

Proporciona tu contraseña y pulsa ENTER. Una vez instalado Tripwire, deberías ver la siguiente pantalla:

La instalación de Tripwire ha finalizado

Pulsa el botón Aceptar para finalizar la instalación.

Configurar Tripwire

A continuación, tendrás que generar las claves de Tripwire e inicializar la base de datos. Primero, cambia el directorio a Tripwire y haz una lista de todas las claves y archivos con el siguiente comando:

cd /etc/tripwire/
ls

Deberías ver la siguiente salida:

debian10-local.key  site.key  tw.cfg  twcfg.txt  tw.pol  twpol.txt

A continuación, edita el archivo de configuración de Tripwire y establece el REPORTLEVEL en 4

nano /etc/tripwire/twcfg.txt

Cambia la siguiente línea:

REPORTLEVEL   =4

Guarda y cierra el archivo cuando hayas terminado.

A continuación, genera un nuevo archivo de configuración con el siguiente comando

twadmin -m F -c tw.cfg -S site.key twcfg.txt

Se te pedirá que proporciones la frase de contraseña de tu sitio, como se muestra a continuación:

Please enter your site passphrase: 
Wrote configuration file: /etc/tripwire/tw.cfg

A continuación, crea un archivo twpolmake.pl para optimizar la política de Tripwire.

nano twpolmake.pl

Añade las siguientes líneas:

#!/usr/bin/perl
$POLFILE=$ARGV[0];

open(POL,"$POLFILE") or die "open error: $POLFILE" ;
my($myhost,$thost) ;
my($sharp,$tpath,$cond) ;
my($INRULE) = 0 ;

while () {
    chomp;
    if (($thost) = /^HOSTNAME\s*=\s*(.*)\s*;/) {
        $myhost = `hostname` ; chomp($myhost) ;
        if ($thost ne $myhost) {
            $_="HOSTNAME=\"$myhost\";" ;
        }
    }
    elsif ( /^{/ ) {
        $INRULE=1 ;
    }
    elsif ( /^}/ ) {
        $INRULE=0 ;
    }
    elsif ($INRULE == 1 and ($sharp,$tpath,$cond) = /^(\s*\#?\s*)(\/\S+)\b(\s+->\s+.+)$/) {
        $ret = ($sharp =~ s/\#//g) ;
        if ($tpath eq '/sbin/e2fsadm' ) {
            $cond =~ s/;\s+(tune2fs.*)$/; \#$1/ ;
        }
        if (! -s $tpath) {
            $_ = "$sharp#$tpath$cond" if ($ret == 0) ;
        }
        else {
            $_ = "$sharp$tpath$cond" ;
        }
    }
    print "$_\n" ;
}
close(POL) ;

Guarda y cierra el archivo y luego crea un archivo de configuración con el siguiente comando:

perl twpolmake.pl twpol.txt > twpol.txt.new 
twadmin -m P -c tw.cfg -p tw.pol -S site.key twpol.txt.new

Deberías ver la siguiente salida:

Please enter your site passphrase: 
Wrote policy file: /etc/tripwire/tw.pol

A continuación, crea una base de datos Tripwire con el siguiente comando:

tripwire -m i -s -c tw.cfg

Deberías ver la siguiente salida:

Please enter your local passphrase: 
### Warning: File system error.
### Filename: /var/lib/tripwire/debian10.twd
### No such file or directory
### Continuing...

También puedes visualizar la base de datos generada con el siguiente comando:

twprint -m d -d /var/lib/tripwire/debian10.twd

Deberías ver la siguiente salida:

Open Source Tripwire(R) 2.4.3.7 Database

Database generated by:        root
Database generated on:        Sun 09 May 2021 08:39:18 AM UTC
Database last updated on:     Never

===============================================================================
Database Summary: 
===============================================================================

Host name:                    debian10
Host IP address:              45.58.38.142
Host ID:                      None
Policy file used:             /etc/tripwire/tw.pol
Configuration file used:      /etc/tripwire/tw.cfg
Database file used:           /var/lib/tripwire/debian10.twd
Command line used:            tripwire -m i -s -c tw.cfg 

===============================================================================
Object Summary: 
===============================================================================

-------------------------------------------------------------------------------
# Section: Unix File System
-------------------------------------------------------------------------------

Si quieres actualizar la base de datos Tripwire, ejecuta el siguiente comando:

tripwire --update --accept-all

Deberías obtener la siguiente salida:

### Error: File could not be opened.
### Filename: /var/lib/tripwire/report/debian10-20210509-084141.twr
### No such file or directory
### Exiting...

Ahora, prueba el Tripwire con el siguiente comando:

tripwire -m c -s -c /etc/tripwire/tw.cfg

Deberías ver la siguiente salida:

Open Source Tripwire(R) 2.4.3.7 Integrity Check Report

Report generated by:          root
Report created on:            Sun 09 May 2021 08:42:15 AM UTC
Database last updated on:     Never

===============================================================================
Report Summary:
===============================================================================

Host name:                    debian10
Host IP address:              45.58.38.142
Host ID:                      None
Policy file used:             /etc/tripwire/tw.pol
Configuration file used:      /etc/tripwire/tw.cfg
Database file used:           /var/lib/tripwire/debian10.twd
Command line used:            tripwire -m c -s -c /etc/tripwire/tw.cfg 

===============================================================================
Rule Summary: 
===============================================================================

-------------------------------------------------------------------------------
  Section: Unix File System
-------------------------------------------------------------------------------

  Rule Name                       Severity Level    Added    Removed  Modified 
  ---------                       --------------    -----    -------  -------- 
  Other binaries                  66                0        0        0        
  Tripwire Binaries               100               0        0        0        
  Other libraries                 66                0        0        0        
  Root file-system executables    100               0        0        0        
* Tripwire Data Files             100               1        0        0        
  System boot changes             100               0        0        0        
  Root file-system libraries      100               0        0        0        
  (/lib)
  Critical system boot files      100               0        0        0        
* Other configuration files       66                0        0        1        
  (/etc)
  Boot Scripts                    100               0        0        0        
  Security Control                66                0        0        0        
  Root config files               100               0        0        0        
  Devices & Kernel information    100               0        0        0        
  (/dev)
  Invariant Directories           66                0        0        0        

Total objects scanned:  27975
Total violations found:  2

===============================================================================
Object Summary: 
===============================================================================

-------------------------------------------------------------------------------
# Section: Unix File System
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Rule Name: Tripwire Data Files (/var/lib/tripwire/debian10.twd)
Severity Level: 100
-------------------------------------------------------------------------------

Por defecto, los archivos de informes de Tripwire se encuentran en /var/lib/tripwire/report/:

ls /var/lib/tripwire/report/

Salida:

debian10-20210509-084215.twr

Puedes comprobar este informe con el siguiente comando:

twprint -m r -t 4 -r /var/lib/tripwire/report/debian10-20210509-084215.twr

Verificar Tripwire IDS

En este punto, Tripwire está instalado y configurado. Ahora, es el momento de comprobar si Tripwire funciona o no.

Primero, crea algunos archivos en tu sistema con el siguiente comando:

touch fil1 file2 file3 file4 file5

Ahora, ejecuta el Tripwire para comprobar si éste detecta estos archivos o no:

tripwire --check --interactive

Deberías ver los archivos recién creados en la siguiente salida:

Open Source Tripwire(R) 2.4.3.7 Integrity Check Report

Report generated by:          root
Report created on:            Sun 09 May 2021 08:46:36 AM UTC
Database last updated on:     Never

===============================================================================
Report Summary:
===============================================================================

Host name:                    debian10
Host IP address:              45.58.38.142
Host ID:                      None
Policy file used:             /etc/tripwire/tw.pol
Configuration file used:      /etc/tripwire/tw.cfg
Database file used:           /var/lib/tripwire/debian10.twd
Command line used:            tripwire --check --interactive

===============================================================================
-------------------------------------------------------------------------------
Rule Name: Other configuration files (/etc)
Severity Level: 66
-------------------------------------------------------------------------------

Remove the "x" from the adjacent box to prevent updating the database
with the new values for this object.

Modified:
[x] "/etc/tripwire"

-------------------------------------------------------------------------------
Rule Name: Root config files (/root)
Severity Level: 100
-------------------------------------------------------------------------------

Remove the "x" from the adjacent box to prevent updating the database
with the new values for this object.

Added:
[x] "/root/file4"
[x] "/root/file3"
[x] "/root/fil1"
[x] "/root/file2"
[x] "/root/file5"

Modified:
[x] "/root"

===============================================================================

También puedes comprobar el informe generado más tarde con el siguiente comando:

twprint --print-report --twrfile /var/lib/tripwire/report/debian10-20210509-084636.twr

Automatizar informe Tripwire

También puedes configurar una tarea cron para ejecutar un Tripwire a una hora determinada. Puedes hacerlo con el siguiente comando:

crontab -e

Añade las siguientes líneas:

00 06 * * * /usr/sbin/tripwire --check

Guarda y cierra el archivo cuando hayas terminado.

El archivo anterior ejecutará un Tripwire cada mañana a las 06:00 AM. Puedes consultar el informe generado en /var/lib/tripwire/report/.

Conclusión

Enhorabuena! has instalado y configurado con éxito Tripwire IDS en Debian 10. Espero que esto te ayude a comprobar qué archivos o directorios se han modificado en tu sistema.

También te podría gustar...