GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel Tripwire :Système de détection d'intrusion basé sur l'hôte Linux

Photo publiée avec l'aimable autorisation de judepics

Tripwire est un système de détection d'intrusion basé sur l'hôte pour Linux. Tripwire surveille le système Linux pour détecter et signaler toute modification non autorisée des fichiers et des répertoires. Une fois qu'une ligne de base est créée, tripwire surveille et détecte quel fichier est ajouté, quel fichier est modifié, ce qui est modifié, qui l'a modifié et quand il a été modifié. Si les modifications sont légitimes, vous pouvez mettre à jour la base de données tripwire pour accepter ces modifications.

Aussi, pour la solution de monitoring, merci de vous référer à tous nos articles précédents sur Nagios

Ce guide d'instructions étape par étape explique comment installer et configurer la version open source de tripwire.

1. Télécharger Tripwire

Téléchargez la dernière version open source de tripwire depuis le site Web du projet tripwire sourceforget. Extrayez le code source de tripwire dans le répertoire /usr/src comme indiqué ci-dessous.

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

Utilisez l'option de préfixe comme indiqué ci-dessous pour spécifier le répertoire d'installation. Dans cet exemple, j'ai installé tripwire sous /opt/tripwire. Pendant make install, il vous demandera diverses entrées utilisateur, qui sont surlignées en rouge ci-dessous.

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

  • Phrase secrète du site sécurisera le fichier de configuration tw.cfg tripwire
    et le fichier de politique tw.pol tripwire. Vous devez attribuer une phrase secrète de site
    même pour un tripwire d'instance unique.
  • Phrase secrète locale protégera la base de données et les fichiers de rapport de Tripwire.

3. Initialiser la base de données Tripwire

Pour la première utilisation, vous devez initialiser la base de données Tripwire comme indiqué ci-dessous.

# 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. Modifier le fichier de politique Tripwire

Comme indiqué ci-dessus, lors de l'initialisation de la base de données tripwire, il peut afficher le message d'erreur «Aucun fichier ou répertoire de ce type» pour certains des fichiers par défaut mentionnés dans le fichier de stratégie tripwire. Si votre système ne dispose pas de ces fichiers, modifiez le fichier de stratégie et commentez ces entrées.

Par exemple, modifiez le /opt/tripwire/etc/twpol.txt tripwire policy file et commentez /cdrom et /floppy comme indiqué ci-dessous.

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


À l'aide des fichiers de stratégie de tripwire, vous pouvez définir les répertoires et les fichiers qui doivent être surveillés pour les modifications. Vous pouvez également être plus précis et spécifier les attributs de fichier qui doivent être surveillés ou ignorés.

Voici quelques-unes des propriétés du système UNIX qui sont surveillées par tripwire.

  • Ajout, suppression et modification de fichiers
  • Autorisations et propriétés des fichiers
  • Horodatage d'accès
  • Horodatage de modification
  • Type de fichier et taille de fichier
  • Identifiant utilisateur du propriétaire et identifiant de groupe du propriétaire
  • Vérification de hachage :CRC-32, vérification de redondance cyclique 32 bits conforme à POSIX 1003.2 ; MD5, l'algorithme RSA Security Message Digest ; SHA, partie de l'algorithme SHS/SHA ; HAVAL, un puissant algorithme de signature 128 bits

5. Mettre à jour le fichier de politique Tripwire

Une fois que vous avez modifié le fichier de stratégie, il doit être mis à jour comme indiqué ci-dessous.

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

Remarque : si des fichiers ont été modifiés entre le moment où vous avez effectué l'initialisation de Tripwire et la politique de mise à jour de Tripwire, ils seront répertoriés sous la sortie "Étape 1 :Collecte d'informations pour la nouvelle politique" de la commande ci-dessus.

### 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. Vérifiez les modifications apportées aux fichiers et mettez à jour la base de données tripwire.

Une fois la configuration de Tripwire terminée, vous devez effectuer régulièrement des vérifications pour savoir quels fichiers ont été ajoutés ou modifiés depuis la dernière mise à jour de la base de données de Tripwire. Vous pouvez effectuer cette vérification de manière interactive à partir de la ligne de commande, comme indiqué ci-dessous.

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


Cela ouvrira automatiquement le fichier de rapport tripwire suivant dans le vi, où vous pourrez revoir tous les fichiers qui ont été ajoutés ou modifiés au système. Comme indiqué ci-dessous, les fichiers "Ajoutés" et "Modifiés" seront cochés devant eux, indiquant que vous acceptez que ces modifications soient mises à jour dans la base de données 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. Comment afficher le fichier de rapport twr ?

Tous les fichiers de rapport tripwire avec l'extension *.twr sont stockés dans le répertoire /opt/tripwire/lib/tripwire/report. Le fichier de rapport tripwire *.twr n'est pas un fichier texte que vous pouvez visualiser directement. Pour afficher le rapport, utilisez twprint et convertissez le fichier *.twr en un format texte lisible, comme indiqué ci-dessous.

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

8. Surveillez régulièrement l'intégrité du système Linux

Ajoutez la vérification du fil de déclenchement en tant que tâche cron pour surveiller et signaler tout changement de manière continue. Par exemple, ajoutez la ligne suivante à votre crontab pour exécuter la vérification du fil de déclenchement tous les jours à 4h00.

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

9. Emplacements des fichiers de configuration et de stratégie de Tripwire

Utilisez twadmin pour afficher les fichiers de stratégie Tripwire actuels. Seule une sortie partielle est affichée ci-dessous.

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

Utilisez twadmin pour obtenir des informations sur tous les fichiers de configuration de tripwire comme indiqué ci-dessous.

# ./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 vous avez aimé cet article, veuillez le mettre en signet sur delicious, Digg and Stumble it .


Linux
  1. Améliorez les performances du système Linux avec noatime

  2. Amélioration de la sécurité Linux avec Advanced Intrusion Detection Environment (AIDE)

  3. Exemples Linux AuFS :autre didacticiel sur le système de fichiers Union (implémentation UnionFS)

  4. Comment monter et démonter un système de fichiers sous Linux

  5. Tutoriel de base sur le système de fichiers Linux - ext2, ext3, ext4, JFS et XFS

Comment trouver des fichiers basés sur l'horodatage sous Linux

Comment vérifier/réparer le système de fichiers Linux au démarrage

Comment réparer les erreurs du système de fichiers dans Linux Mint

Administration du système de fichiers réseau (NFS) sous Linux

Qu'est-ce que le système de fichiers Linux ? Guide facile

Commutateur de fichiers hôtes sous Linux