TIGER(8)
TIGER(8) β UNIX Security Checker π
Administrator Commands β¨ the manual, bestie
πΈ NAME πΈ
tiger β UNIX Security Checker π―π
β¨ SYNOPSIS β¨
tiger [-vthqGSH] [-B dir] [-l dir|@host] [-w dir] [-b dir] [-e|-E] [-c
config] [-A arch] [-O os] [-R release]
π¦ DESCRIPTION π¦
okay so, tiger? it's a whole package, not just one lil script β we're talking Bourne Shell scripts, C code and data files, all working together to check your UNIX system for security problems. she scans your system config files, your file systems, and your user config files, looking for anything sus, and then reports it. πβ¨
and when you get a report full of cryptic nonsense, the command tigexp(8) is right there to give you explanations of the problems tiger reported. no cap, that's the whole point.
you can configure tiger by adjusting the Tiger_ variables in the /etc/tiger/tigerrc configuration file. for each available module (peep MODULES below π) there's a corresponding variable in the config file that decides whether that module even runs. all those variable names start with Tiger_check_ and you set them to Y to run it, or N to skip it. simple. other config variables tweak how some modules behave, and you should adjust those based on your operating system. π«
the /etc/tiger/tiger.ignore config file defines a set of messages that will not show up in the report, even if some module generates them. if that file exists, all the entries (line by line) get used as extended regular expressions compared against each message β heads up tho, this adds some overhead, and it grows with the size of the file π. for more info on how this works, read the README.ignore document. π
π OPTIONS π
here's what you can pass when you call the program:
-Btigerdir β specify the directory wheretigeris installed. if you don't,/usr/lib/tigergets used.-llogdir|@logserver β specify the name of the directory wheretigerwrites the security report. defaults to/var/log/tiger. the report filename will look like'security.report.hostname.date.time'. if the directory starts with an@, the name gets interpreted as a tiger logging server. the tiger logging server is currently a server that listens on port (tcp)5353on a remote host. thetigerprocess just sends the results over to that server using a telnet connection. π‘-wworkdir β specify a directory to use for creating scratch files. defaults to/var/lib/tiger/work.-bbindir β specify the directory which contains (or will contain) the binaries generated from the C modules. if the system's directories already have all the binaries, they get used directly from there. if not, then ifbindirhas the binaries, those get used. if neither place has them, then it'll attempt to compile the C code and install the executables intobindir. π¨-ctigerrc β specify an alternate name for thetigerrccontrol file. default is'/etc/tiger/tigerrc'.-eβ this one makes explanations get inserted into the security report right after each message. warning: this can greatly increase the size of the report, because explanations may appear repeatedly. π-Eβ this one says a separate explanation report should be created, with explanations for each type of message only appearing once. the filename of the explanation report will look like'explain.report.hostname.date.time'.-Gβ generate the signatures (MD5 hashes and file permissions) for system binary files. π-Hβ this one formats the report into HTML, creating local links to the problem descriptions. π-Sβ this one says a surface level check of the configuration files of any diskless clients served by this machine should be checked at the same time. the checks won't be as in depth as they'd be if run on the client itself. ngl, it's giving "quick vibe check, not a full audit" π«Ά-qβ suppress messages to be as quiet as possible; only security messages will be shown. π€«-Aarch β overrides the default value obtained for the current architecture, which was detected by the internal configuration engine, to a value you define.-Oos β overrides the default value obtained for the current operating system, detected by the internal configuration engine, to a value you define.-Rrelease β overrides the default value obtained for the current operating system release, detected by the internal configuration engine, to a value you define.
β οΈ okay bestie, real talk: notice that changing the real values for the operating system and architecture tiger is running in might result in scripts being run that are not appropriate for it, and as a consequence, unexpected (and potentially dangerous) errors might be generated. π
when executed, tiger will show which operating system, release and architecture it thinks it's running in. π
π§© MODULES π§©
Okay so here's the tea: Tiger isn't one big blob, bestie. It's a whole squad of modules, and each one is out here checking a specific security issue on your UNIX system. The framework lets you have both generic modules and ones that are specific to whatever OS you're running on. And the flex? Modules can run standalone, from cron, or through the tiger program itself (which just runs every single one that's available). Main character behavior, honestly.
If you wanna write your own modules for your system, go read the README.writemodules document. The door is open, we love that for you π«Ά
Tiger currently provides the following modules:
check_accountsβ Checks the accounts provided in the system, looking for disabled accounts withcron,rhosts,.forward, and valid shells.check_aliasesβ Performs a check for mail aliases and improper configuration.check_anonftpβ Determines if the anonymous FTP service is properly configured.check_cronβ Validates the cron entries in the system.check_embeddedβ Determines if embedded pathnames are configured properly.check_exportsβ Analyses configuration files for NFS exported filesystems to see if access is properly restricted.check_groupβ Checks the UNIX groups available in the system, looking for conflicts and improper entries.check_inetdβ Checks the inetd configuration file: compares against services definition, valid directory paths, non-existent binaries and active services.check_knownβ Looks for known intrusion signs including backdoors and mail spools.check_netrcβ Checks if users's netrc files are insecurely configured.check_nisplusβ Looks for wrong configuration in the NIS+ entries.check_passwdβ Checks the UNIX users available in the system, looking for conflicts and improper entries.check_pathβ Validates the binaries in user'sPATHs as well asPATHdefinitions used by scripts in order to determine insecure definitions.check_permsβ Check filepermissions and inconsistencies.check_printcapβ Analyses the configuration for the printer control file.check_rhostsβ Checks rhosts files in order to see if user's configuration leaves the system open to attack.check_sendmailβ Checks sendmail configuration files. (and yeah, the manpage literally runs this straight into the next one, no paragraph break, no nothing β iconically chaotic π)check_signaturesβ Compares binary files signatures against those stored in the local database (provided with the program).check_systemβ This module calls the operating system's specific modules available at/usr/lib/tiger/systems/.check_apacheβ Checks the Apache configuration file and reports on generic issues which might introduce exposures or vulnerabilities in the system.check_devicesβ Checks for devices's permissions, warning about devices that have world permissions.check_exrcβ Analyses.exrcfiles that are not in user's home directories. Thevicommand will look for the existence of such a file in the current directory, and so may inadvertently perform commands that can compromise your system's security when startingviorex.check_finddeletedβ Checks if deleted files are being used by any process in the current system. This might be an indication of intrusion (a user executing processes and then deleting its files) or of unpatched servers (which, if not restarted use old library files and are still vulnerable).check_ftpusersβ Analyses the system's/etc/ftpusersand determines if the administrative users are in that file.check_issueβ Checks the/etc/issueand/etc/issue.netfile to determine if they contain the appropriate content (this is defined in theISSUEFILEandISSUENETFILE).check_logfilesβ Checks for the existence of log files (wtmp,btmp,lastlogandutmp). It will also check for properumasksettings.check_bootloaderβ Analyses configuration files for different bootloaders includingliloandgrub(Linux-specific).check_listeningprocsβ Checks for processes listening on TCP/IP sockets (servers) in the system as well as users running them. Will warn if the user running a server is not an authorised one or if the server is listening on all available interfaces.check_passwdformatβ Checks the format of the/etc/passwdfile in order to determine inconsistencies which indicate an intrusion or misconfiguration.check_patchesβ Checks if patches are available for the system (i.e. new packages). It will useautorpmorapt-getto check this (so this tools need to be properly configured). This check is specific to Linux (RedHat or Debian).check_rootβ Checks if remote root login is allowed to the local system.check_rootdirβ Checks the permissions for the root directory.check_rootkitβ Tries to find systems which have been rootkited, it does so by looking for trojanedlsandfindcommands. It also includes a wrapper to run thechkrootkitprogram and format the results in Tiger's message format.check_singleβ Checks if the system is properly configured to disallow single-user access. This check is specific to Linux.check_releaseβ Analyses the version of the operating system and determines if it is too out of date. This check is specific to Linux (RedHat or Debian).check_runprocsβ This module will check if the processes configured intigerrcare running currently in the system. If any of the processes is not running, Tiger will warn the administrator (this acts as a lightweight software watchdog)check_servicesβ Check which services are configured in the system (usually in/etc/services) versus the ones that should be configured (in the provided services file)check_tcpdβ Tests for the existence of tcp-wrappers and changes in their configuration it also determines which services are running wrapped in tcp-wrappers.check_umaskβ Check forumasksetting in configuration files.check_xinetdβ Checks whichxinetdservices are enabled or disabled.crack_runβ Runs a local installation of the Crack program which can be used to determine if local user passwords are easy (or not) to guess.tripwire_runaide_runintegrit_runβ Wrappers for a number of integrity checkers, these programs enhance the support of Tiger for MD5 and SHA-1 binary signatures and file system permission checks (implemented with the thecheck_permsandcheck_signaturesscripts). You should consider installing any of these three programs (Tripwire, Aide or Integrit) and use read-only locations (such as CD-ROM) to store the hashes of the system.deb_checkmd5sumsβ Compares the MD5 sums of binary files against those provided after installation. Changes in these files might be an indication of a compromised system (Debian-specific).deb_nopackfilesβ Looks for files installed in the system's directories that are not provided by any installed Debian packages (Debian-specific).
π FILES π
These are the spots on your filesystem that matter, bestie β memorize the map πΊοΈβ¨
/etc/tiger/tigerrcβ Configuration file for the Tiger tool./etc/tiger/cronrcβ Configuration file for the Tigercron tool./var/log/tigerβ Location of the log messages generated by Tiger when run throughcron./var/lib/tiger/workβ Working directory used by Tiger scripts to create temporary files./etc/tiger/tiger.ignoreβ Configuration file that defines which messages generated by modules will be ignored by Tiger and will not be presented in the final report.
π SEE ALSO π
There are also a number of README files that describe in detail the behaviour of Tiger and how it can be used to setup a host-based intrusion detection system. These can be found in the top directory of the sources or in /usr/lib/tiger once it is installed (in Debian the location of the full documentation set is /usr/share/doc/tiger/)
π BUGS π
Not me telling you the flaws, but like, honestly, transparency is the vibe:
- There are a lot more things to check.
- Some places in the package are not shell meta-character or white-space safe.
- You can report or read known bugs at the
http://savannah.nongnu.org/projects/tigerwebpage. - For Debian-specific (known) bugs read the
/usr/share/doc/tiger/README.Debiandocument or thehttp://bugs.debian.org/tigerwebpage.
π AUTHOR π
The origin story, because everyone deserves lore:
Tiger was originally developed by a team of the Texas A&M University Supercomputer Center, as of September 1993, the development done via the Network Group, Computing & Information Services.
This software was written originally by Douglas Lee Schales, Dave K. Hess, Khalid Warraich, and Dave R. Safford (circa 1993).
A lot of changes were introduced by the ARSC team (a.k.a. the TARA team) Liam Forbes <lforbes at arsc.edu>, Nathan Bills <bills AT arsc.edu> and Mike Kienenberger <mkienenb at arsc.edu>, including support for quite a number of operating systems.
Current upstream maintenance of Tiger is being done by Javier Fernandez-Sanguino PeΓ±a and coordinated at http://savannah.nongnu.org/projects/tiger.
The adaptation for the GNU/Linux operating system was made by Robert L. Ziegler <rlz at mediaone.net>
The modifications for the Debian GNU/Linux operating system have been made by Javier Fernandez-Sanguino PeΓ±a <jfs at computer.org>, including a number of checks for the GNU/Linux operating systems (check_listeningprocs) and some specific for Debian (deb_checkadvisories, deb_checkmd5sums and deb_nopackfiles).
and that's the whole page, bestie!! πβ¨
This came out of the Security corner of the manual, and the version on deck is dated 12 August 2003 β it's TIGER(8), periodt. Now go run your security checks and slay responsibly ππ¦π
π¦ where this page comes from
- debian bookworm: tiger 1:3.2.4~rc1-3.2 Β· GPL-1.0-or-later
- debian trixie: tiger 1:3.2.4~rc1-3.4 Β· GPL-1.0-or-later
- ubuntu jammy: tiger 1:3.2.4~rc1-3 Β· GPL-1.0-or-later
- ubuntu noble: tiger 1:3.2.4~rc1-3.2 Β· GPL-1.0-or-later
- ubuntu questing: tiger 1:3.2.4~rc1-3.5
- ubuntu resolute: tiger 1:3.2.4~rc1-3.5build1 Β· GPL-1.0-or-later
- ubuntu stonking: tiger 1:3.2.4~rc1-3.5build1 Β· GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms