9.2. Host-based IDS

A host-based IDS analyzes several areas to determine misuse (malicious or abusive activity inside the network) or intrusion (breaches from the outside). Host-based IDSes consult several types of log files (kernel, system, server, network, firewall, and more), and compare the logs against an internal database of common signatures for known attacks. UNIX and Linux host-based IDSes make heavy use of syslog and its ability to separate logged events by their severity (for example, minor printer messages versus major kernel warnings). The host-based IDS filters logs (which, in the case of some network and kernel event logs, can be quite verbose), analyze them, re-tag the anomalous messages with its own system of severity rating, and collect them in its own specialized log for administrator analysis.

Host-based IDSes can also verify the data integrity of important files and executables. It checks a database of sensitive files (and any files that you may want to add) and creates a checksum of each file with a message-file digest utility such as md5sum (128-bit algorithm) or sha1sum (160-bit algorithm). The host-based IDS then stores the sums in a plain text file, and periodically compares the file checksums against the values in the text file. If any of the file checksums do not match, the IDS will alert the administrator by email or cellular pager. This is the process used by Tripwire, which is discussed in Section 9.2.1 Tripwire.

9.2.1. Tripwire

Tripwire is the most popular host-based IDS for Linux. Tripwire, Inc., the developers of Tripwire, recently opened the software source code for the Linux version and licensed it under the terms of the GNU General Public License. Red Hat Linux includes Tripwire, which is available in RPM package format for easy installation and upgrade.

Detailed information on the installation and configuration of Tripwire can be found in the Red Hat Linux Reference Guide.

9.2.2. RPM as an IDS

The RPM Package Manager (RPM) is another program that can be used as a host-based IDS. RPM contains various options for querying packages and their contents. These verification options can be invaluable to an administrator who suspects that critical system files and executables have been modified.

The following list details some options for RPM that you can use to verify file integrity on your Red Hat Linux system. Refer to the Red Hat Linux Customization Guide for complete information about using RPM.


Some of the commands in the list that follows requirethat you import the Red Hat GPG public key into your RPM keyring. This key verifies that packages installed on your system contain an Red Hat package signature, which ensures that your packages originated from Red Hat. The key can be imported with the following command (substituting <version> with the version of RPM installed on your system):

rpm --import /usr/share/doc/rpm-<version>/RPM-GPG-KEY

rpm -V package_name

The -V option verifies the files in the installed package called package_name. If it shows no output and exits, this means that all of the files have not been modified in anyway since the last time the RPM database was updated. If there is an error, such as

S.5....T c /bin/ps

then the file has been modified in some way and you need to assess whether to keep the file (such is the case with modified configuration files in /etc) or delete the file and reinstall the package that contains it. The following list defines the elements of the 8-character string (S.5....T in the above example) that notifies of a verification failure.

  • . — The test has passed this phase of verification

  • ? — The test has found a file that could not be read, which is most likely a file permission issue

  • S — The test has encountered a file that that is smaller or larger than it was when originally installed on the system

  • 5 — The test has found a file whose md5 checksum does not match the original checksum of the file when first installed

  • M — The test has detected a file permission or file type error on the file

  • D — The test has encountered a device file mismatch in major/minor number

  • L — The test has found a symbolic link that has been changed to another file path

  • U — The test has found a file that had its user ownership changed

  • G — The test has found a file that had its group ownership changed

  • T — The test has encountered mtime verification errors on the file

rpm -Va

The -Va option verifies all installed packages and finds any failure in its verification tests (much like the -V option, but more verbose in its output since it is verifying every installed package).

rpm -Vf /bin/ls

The -Vf option verifies individual files in an installed package. This can be useful if you wish to perform a quick verification of a suspect file.

rpm -K application-1.0.i386.rpm

The -K option is useful for checking the md5 checksum and the GPG signature of an RPM package file. This is useful for checking whether a package you want to install is signed by Red Hat or any organization for which you have the GPG public key imported into your GPG keyring. A package that has not been properly signed will emit an error message similar to the following:

application-1.0.i386.rpm (SHA1) DSA sha1 md5 (GPG) NOT OK
		  (MISSING KEYS: GPG#897da07a)

Exercise caution when installing packages that are unsigned as they are not approved by Red Hat, Inc. and could contain malicious code.

RPM can be a powerful tool, as evidenced by its many verification tools for installed packages and RPM package files. It is strongly recommended that you backup the contents of your RPM database directory (/var/lib/rpm/) to read-only media, such as CD-ROM, after you install Red Hat Linux. Doing so allows you to safely verify files and packages against the read-only database, rather than against the database on the system, as malicious users may corrupt the database and skew your results.

9.2.3. Other Host-based IDSes

The following list discusses some of the other popular host-based intrusion detection systems available. Refer to the websites of the respective utilities for more information about installing and configuring them in your environment.


These applications are not included with Red Hat Linux and are not supported. They have been included in this document as a reference to users who may be interested in evaluating such applications.