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
### 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 .