GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de Tripwire:Sistema de detección de intrusos basado en host Linux

Foto cortesía de judepics

Tripwire es un sistema de detección de intrusos basado en host para Linux. Tripwire monitorea el sistema Linux para detectar e informar cualquier cambio no autorizado en los archivos y directorios. Una vez que se crea una línea de base, tripwire monitorea y detecta qué archivo se agrega, qué archivo se cambia, qué se cambia, quién lo cambió y cuándo se cambió. Si los cambios son legítimos, puede actualizar la base de datos de Tripwire para aceptar estos cambios.

Además, para la solución de monitoreo, consulte todos nuestros artículos anteriores sobre Nagios

Esta guía de instrucciones paso a paso explica cómo instalar y configurar la versión de código abierto de Tripwire.

1. Descarga Tripwire

Descargue la última versión de código abierto de tripwire desde el sitio web del proyecto tripwire sourceforget. Extraiga el código fuente de Tripwire en el directorio /usr/src como se muestra a continuación.

# cd /usr/src
# wget http://internap.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.4.1.2-src.tar.bz2
# bzip2 -d tripwire-2.4.1.2-src.tar.bz2
# tar xvf tripwire-2.4.1.2-src.tar

2. Instalar cable trampa

Utilice la opción de prefijo como se muestra a continuación para especificar el directorio de instalación. En este ejemplo, instalé tripwire en /opt/tripwire. Durante la instalación, le solicitará varias entradas de usuario, que se resaltan en rojo a continuación.

# cd tripwire-2.4.1.2-src

# ./configure --prefix=/opt/tripwire

# make

# make install

make[3]: Entering directory `/usr/src/tripwire-2.4.1.2-src'
prefix="/opt/tripwire" sysconfdir="/opt/tripwire/etc" \
        path_to_vi="/bin/vi" path_to_sendmail="/usr/sbin/sendmail" \
        ./install/install.sh
Installer program for: Tripwire(R) 2.4 Open Source
LICENSE AGREEMENT for Tripwire(R) 2.4 Open Source
Please read the following license agreement.  You must accept the
agreement to continue installing Tripwire.
Press ENTER to view the License Agreement.
[Note: Press enter key as instructed to view the license]

Please type "accept" to indicate your acceptance of this
license agreement. [do not accept] accept
[Note: Type accept to accept the license]

This program will copy Tripwire files to the following directories:
        TWBIN: /opt/tripwire/sbin
        TWMAN: /opt/tripwire/man
     TWPOLICY: /opt/tripwire/etc
     TWREPORT: /opt/tripwire/lib/tripwire/report
         TWDB: /opt/tripwire/lib/tripwire
 TWSITEKEYDIR: /opt/tripwire/etc
TWLOCALKEYDIR: /opt/tripwire/etc
CLOBBER is false.
Continue with installation? [y/n] y
[Note: Press y to continue the installation]

The Tripwire site and local passphrases are used to
sign a variety of files, such as the configuration,
policy, and database files.
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
Enter the site keyfile passphrase:
Verify the site keyfile passphrase:
[Note: Assign a passphrase for site keyfile.]

Generating key (this may take several minutes)...Key generation complete.
(When selecting a passphrase, keep in mind that good passphrases typically
have upper and lower case letters, digits and punctuation marks, and are
at least 8 characters in length.)
Enter the local keyfile passphrase:
Verify the local keyfile passphrase:
[Note: Assign a passphrase for local keyfile.]

Creating signed configuration file...
Please enter your site passphrase:
Wrote configuration file: /opt/tripwire/etc/tw.cfg
[Note: Enter the site passphrase.]

Creating signed policy file...
Please enter your site passphrase:
Wrote policy file: /opt/tripwire/etc/tw.pol
[Note: Enter the site passphrase]

The installation succeeded.

  • Frase de contraseña del sitio protegerá el archivo de configuración tw.cfg tripwire
    y el archivo de política tw.pol tripwire. Tienes que asignar una frase de contraseña del sitio
    incluso para un cable trampa de una sola instancia.
  • Frase de contraseña local protegerá la base de datos de Tripwire y los archivos de informes.

3. Inicializar base de datos Tripwire

Para el uso por primera vez, debe inicializar la base de datos de Tripwire como se muestra a continuación.

# cd /opt/tripwire/sbin/

# ./tripwire --init

Please enter your local passphrase:
Parsing policy file: /opt/tripwire/etc/tw.pol
Generating the database...
*** Processing Unix File System ***
The object: "/sys" is on a different file system...ignoring.
### Warning: File system error.
### Filename: /cdrom
### No such file or directory
### Continuing...
### Warning: File system error.
### Filename: /floppy
### No such file or directory
### Continuing...
### Warning: File system error.
### Filename: /initrd
### No such file or directory
### Continuing...
### Warning: File system error.
Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd
The database was successfully generated.

4. Modificar archivo de política Tripwire

Como se muestra arriba, durante la inicialización de la base de datos de Tripwire, puede mostrar el mensaje de error "No existe tal archivo o directorio" para algunos de los archivos predeterminados mencionados en el archivo de política de Tripwire. Si su sistema no tiene esos archivos, edite el archivo de políticas y comente esas entradas.

Por ejemplo, modifique /opt/tripwire/etc/twpol.txt archivo de política tripwire y comente /cdrom y /floppy como se muestra a continuación.

(
  rulename = "OS Boot Files and Mount Points",
)
{
  /boot                         -> $(ReadOnly) ;
#  /cdrom                        -> $(Dynamic) ;
#  /floppy                       -> $(Dynamic) ;
  /mnt                          -> $(Dynamic) ;
}


Usando los archivos de políticas de Tripwire, puede definir los directorios y archivos que necesitan ser monitoreados para los cambios. También puede ser más granular y especificar los atributos del archivo que deben monitorearse o ignorarse.

Las siguientes son algunas de las propiedades del sistema UNIX que son monitoreadas por Tripwire.

  • Adición, eliminación y modificación de archivos
  • Permisos y propiedades de archivo
  • Marca de tiempo de acceso
  • Marca de tiempo de modificación
  • Tipo y tamaño de archivo
  • ID de usuario del propietario e ID de grupo del propietario
  • Comprobación de hash:CRC-32, comprobación de redundancia cíclica de 32 bits compatible con POSIX 1003.2; MD5, el algoritmo de resumen de mensajes de seguridad RSA; SHA, parte del algoritmo SHS/SHA; HAVAL, un potente algoritmo de firma de 128 bits

5. Actualizar archivo de política de Tripwire

Una vez que haya modificado el archivo de política, debe actualizarlo como se muestra a continuación.

# ./tripwire --update-policy --secure-mode low ../etc/twpol.txt

Parsing policy file: /opt/tripwire/etc/twpol.txt
Please enter your local passphrase:
Please enter your site passphrase:
======== Policy Update: Processing section Unix File System.

======== Step 1: Gathering information for the new policy.
The object: "/sys" is on a different file system...ignoring.

======== Step 2: Updating the database with new objects.

======== Step 3: Pruning unneeded objects from the database.
Wrote policy file: /opt/tripwire/etc/tw.pol
Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd

Nota: si se ha modificado algún archivo desde el momento en que realizó la inicialización de Tripwire hasta la política de actualización de Tripwire, se enumerarán en el resultado "Paso 1:Recopilación de información para la nueva política" del comando anterior.

### Warning: Policy Update Changed Object.
### An object has been changed since the database was last updated.

### Object name: Conflicting properties for object
### /u01/app/oracle/oradata/dbfiles/prod01.dbf
### > Modify Time
### > CRC32
### > MD5

6. Compruebe si hay cambios en los archivos y actualice la base de datos de Tripwire.

Una vez que se completa la configuración de Tripwire, debe realizar comprobaciones periódicas para averiguar qué archivos se agregaron o modificaron desde la última vez que se actualizó la base de datos de Tripwire. Puede realizar esta comprobación de forma interactiva desde la línea de comandos, como se muestra a continuación.

# ./tripwire --check --interactive

Parsing policy file: /opt/tripwire/etc/tw.pol
*** Processing Unix File System ***

Performing integrity check...
Wrote report file:
/opt/tripwire/lib/tripwire/report/prod-db-srv-20081204-114336.twr


Esto abrirá automáticamente el siguiente archivo de informe tripwire en el vi, donde puede revisar todos los archivos que se agregaron o modificaron en el sistema. Como se muestra a continuación, los archivos "Agregados" y "Modificados" tendrán una marca de verificación delante de ellos, lo que indica que acepta estos cambios para que se actualicen en la base de datos de Tripwire.

===============================================================================
Report Summary:
===============================================================================
Host name:                    prod-db-srv
Host IP address:              192.168.1.10
Host ID:                      None
Policy file used:             /opt/tripwire/etc/tw.pol
Configuration file used:      /opt/tripwire/etc/tw.cfg
Database file used:           /opt/tripwire/lib/tripwire/prod-db-srv.twd
Command line used:            ./tripwire --check --interactive

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

Added:
[x] "/u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trc"
[x] "/u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trm"

Modified:
[x] "/u01/app/oracle/diag/rdbms/proddb/proddb/metadata/INC_METER_CONFIG.ams"
[x] "/u01/app/oracle/diag/rdbms/proddb/proddb/metadata/INC_METER_INFO.ams"

Added object name:  /u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trc

  Property:            Expected                    Observed
  -------------        -----------                 -----------
* Object Type          ---                         Regular File
* Device Number        ---                         2049
* Inode Number         ---                         12026017
* Mode                 ---                         -rw-r-----
* Num Links            ---                         1
* UID                  ---                         oracle (1082)
* GID                  ---                         oinstall (1083)
* Size                 ---                         837
* Modify Time          ---                         Sat 06 Dec 2008 10:01:51 AM PST
* Blocks               ---                         8
* CRC32                ---                         AYxMeo
* MD5                  ---                         AXSkOul8R/np0fQP4q3QLv

Modified object name:  /u01/app/oracle/diag/tnslsnr/proddb/listener/trace/listener.log

  Property:            Expected                    Observed
  -------------        -----------                 -----------
  Object Type          Regular File                Regular File
  Device Number        2049                        2049
  Inode Number         2295281                     2295281
  Mode                 -rw-r-----                  -rw-r-----
  Num Links            1                           1
  UID                  oracle (1082)               oracle (1082)
  GID                  oinstall (1083)             oinstall (1083)
* Size                 5851880                     5858608
* Modify Time          Sat 06 Dec 2008 09:58:53 AM PST
                                                   Sat 06 Dec 2008 11:39:56 AM PST
* Blocks               11456                       11472
* CRC32                ANdM8R                      CK+bWM
* MD5                  DCW84lCuD2YJOhQd/EuVsn      CV8BMvZNJB9KQBXAf5yRDY

Please enter your local passphrase:
Incorrect local passphrase.
Please enter your local passphrase:
Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd

7. ¿Cómo ver el archivo de informe twr?

Todos los archivos de informes de tripwire con la extensión *.twr se almacenan en el directorio /opt/tripwire/lib/tripwire/report. El archivo de informe de Tripwire *.twr no es un archivo de texto, que puede ver directamente. Para ver el informe, use twprint y convierta el archivo *.twr a un formato de texto legible como se muestra a continuación.

# ./twprint --print-report --twrfile \
/opt/tripwire/lib/tripwire/report/prod-db-srv-20081204-114336.twr  > \
/tmp/readable-output.txt

8. Monitoree la integridad del sistema Linux con regularidad

Agregue la verificación de tripwire como un trabajo cron para monitorear e informar cualquier cambio de manera continua. Por ejemplo, agregue la siguiente línea a su crontab para ejecutar la verificación de cable trampa todos los días a las 4:00 a. m.

# Tripwire Monitor process
00 4 * * * /opt/tripwire/sbin/tripwire  --check

9. Ubicaciones de los archivos de política y configuración de Tripwire

Use twadmin para ver los archivos de políticas actuales de Tripwire. A continuación, solo se muestra una salida parcial.

#./twadmin --print-polfile
@@section GLOBAL
TWDOCS="/opt/tripwire/doc/tripwire";
TWBIN="/opt/tripwire/sbin";
TWPOL="/opt/tripwire/etc";
TWDB="/opt/tripwire/lib/tripwire";
TWSKEY="/opt/tripwire/etc";
TWLKEY="/opt/tripwire/etc";
TWREPORT="/opt/tripwire/lib/tripwire/report";
HOSTNAME=prod-db-srv;

Use twadmin para obtener información sobre todos los archivos de configuración de Tripwire, como se muestra a continuación.

# ./twadmin --print-cfgfile
ROOT          =/opt/tripwire/sbin
POLFILE       =/opt/tripwire/etc/tw.pol
DBFILE        =/opt/tripwire/lib/tripwire/$(HOSTNAME).twd
REPORTFILE    =/opt/tripwire/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
SITEKEYFILE   =/opt/tripwire/etc/site.key
LOCALKEYFILE  =/opt/tripwire/etc/prod-db-srv-local.key
EDITOR        =/bin/vi
LATEPROMPTING =false
LOOSEDIRECTORYCHECKING =false
MAILNOVIOLATIONS =true
EMAILREPORTLEVEL =3
REPORTLEVEL   =3
MAILMETHOD    =SENDMAIL
SYSLOGREPORTING =false
MAILPROGRAM   =/usr/sbin/sendmail -oi -t


Si le gustó este artículo, márquelo como favorito en delicious, Digg and Stumble it .


Linux
  1. Mejore el rendimiento del sistema Linux con noatime

  2. Mejora de la seguridad de Linux con el Entorno de detección de intrusos avanzado (AIDE)

  3. Cómo montar y desmontar un sistema de archivos en Linux

  4. Tutorial básico del sistema de archivos de Linux:ext2, ext3, ext4, JFS y XFS

  5. Android:¿en qué distribución de Linux se basa Android?

Cómo encontrar archivos basados ​​en la marca de tiempo en Linux

Cómo verificar/reparar el sistema de archivos de Linux en el arranque

Cómo reparar errores del sistema de archivos en Linux Mint

Administración del sistema de archivos de red (NFS) en Linux

¿Qué es el sistema de archivos de Linux? Guía fácil

Cambiador de archivos de hosts en linux