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:
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:
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:
Selecciona Sí y pulsa ENTER. Se te pedirá que reconstruyas el archivo de configuración de Tripwire como se muestra a continuación:
Selecciona Sí y pulsa INTRO. Se te pedirá que reconstruyas tu archivo de política de Tripwire como se muestra a continuación:
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:
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:
Proporciona tu contraseña y pulsa ENTER. Una vez instalado Tripwire, deberías ver la siguiente pantalla:
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.